11
authorp15692025051 <846603105@qq.com>
Fri, 22 Mar 2024 10:24:55 +0000 (18:24 +0800)
committerp15692025051 <846603105@qq.com>
Fri, 22 Mar 2024 10:24:55 +0000 (18:24 +0800)
17 files changed:
2.code/1.mouse/components/ble/profiles/ble_hid/hid_service.c
2.code/1.mouse/components/ble/profiles/ble_simple_profile/simple_gatt_service.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/ble_simple_peripheral.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/button.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/config.h
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/inflash.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/keyscan.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/led.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/proj_main.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/sensor.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/timer.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/timer.h
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/user_task.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/user_task.h
2.code/1.mouse/examples/none_evm/ble_voice_mouse/keil/ble_voice_mouse.uvguix.Administrator
2.code/1.mouse/examples/none_evm/ble_voice_mouse/keil/feedback.txt
2.code/2.dongle/examples/none_evm/ble_simple_central_audio/keil/feedback.txt

index 045cdf0..9654ad0 100644 (file)
@@ -545,7 +545,7 @@ static uint16_t hid_gatt_msg_handler(gatt_msg_t *p_msg)
                         show_reg(p_msg->param.msg.p_msg_data,p_msg->param.msg.msg_len,1);
                     }
                 }
-                hid_mouse_timer_start();
+                //hid_mouse_timer_start();
             }
             break;
 
index 3f85fed..6001013 100644 (file)
@@ -259,7 +259,7 @@ static uint16_t sp_gatt_msg_handler(gatt_msg_t *p_msg)
         
         case GATTC_MSG_WRITE_REQ:
                                {
-                    co_printf("GATTC_MSG_WRITE_REQ!!!!p_msg->att_idx:%d\r\n",p_msg->att_idx);
+                    //co_printf("GATTC_MSG_WRITE_REQ!!!!p_msg->att_idx:%d\r\n",p_msg->att_idx);
 /*********************************************************************
  * @brief   Simple Profile user application handles write request in this callback.
  *                     Ó¦ÓòãÔÚÕâ¸ö»Øµ÷º¯ÊýÀïÃæ´¦ÀíдµÄÇëÇó¡£
@@ -352,7 +352,7 @@ static uint16_t sp_gatt_msg_handler(gatt_msg_t *p_msg)
                                }
             break;
         case GATTC_MSG_LINK_CREATE:
-            hid_mouse_timer_start();
+            //hid_mouse_timer_start();
             co_printf("link_created\r\n");
             break;
         case GATTC_MSG_LINK_LOST:
index 4e504b1..0fd5241 100644 (file)
@@ -83,7 +83,7 @@ static uint8_t scan_rsp_data[31] =
    * LOCAL VARIABLES (±¾µØ±äÁ¿)
    */
 static uint8_t m_conn_index = BLE_CONN_INDEX_INVALID;
-static os_timer_t update_param_timer;
+ os_timer_t update_param_timer;
 
 /*
  * LOCAL FUNCTIONS (±¾µØº¯Êý)
@@ -284,16 +284,16 @@ void sp_start_adv(void)
     {
                //gap_bond_manager_delete_all();
         gap_bond_info_t bond_info={0};
-               co_printf("gap_bond_manager_get_info 1 !!!!!!!!\n");
+               //co_printf("gap_bond_manager_get_info 1 !!!!!!!!\n");
         gap_bond_manager_get_info(0, &bond_info);
-        co_printf("gap_bond_manager_get_info 2 bond_info.bond_flag:%d!!!!!!!!\n",bond_info.bond_flag);
+        //co_printf("gap_bond_manager_get_info 2 bond_info.bond_flag:%d!!!!!!!!\n",bond_info.bond_flag);
         // Set advertising parameters
         gap_adv_param_t adv_param;
         adv_param.adv_mode = GAP_ADV_MODE_UNDIRECT;
         adv_param.adv_addr_type = GAP_ADDR_TYPE_PRIVATE;
         adv_param.adv_chnl_map = GAP_ADV_CHAN_ALL;
         adv_param.adv_filt_policy = GAP_ADV_ALLOW_SCAN_ANY_CON_ANY;
-        adv_param.disc_mode = (bond_info.bond_flag == true) ? GAP_ADV_DISC_MODE_NON_DISC : GAP_ADV_DISC_MODE_GEN_DISC;
+        //adv_param.disc_mode = (bond_info.bond_flag == true) ? GAP_ADV_DISC_MODE_NON_DISC : GAP_ADV_DISC_MODE_GEN_DISC;
         adv_param.adv_intv_min = MSEC_TO_UNITS(30, UNIT_0_625_MS);
         adv_param.adv_intv_max = MSEC_TO_UNITS(30, UNIT_0_625_MS);
 
@@ -306,11 +306,11 @@ void sp_start_adv(void)
         memcpy(&scan_rsp_data[2], name, ADV_NAME_BT1_LEN);
         
         // Set advertising data & scan response data
-               co_printf("gap_bond_manager_get_info 3 !!!!!!!!\n");
+               //co_printf("gap_bond_manager_get_info 3 !!!!!!!!\n");
         gap_set_advertising_data(adv_data, (bond_info.bond_flag == true) ? (sizeof(adv_data) - 7) : sizeof(adv_data));
-               co_printf("gap_bond_manager_get_info 4 !!!!!!!!\n");
+               //co_printf("gap_bond_manager_get_info 4 !!!!!!!!\n");
         gap_set_advertising_rsp_data(scan_rsp_data, ADV_NAME_BT1_LEN + 2);
-        co_printf("%s\r\n", (bond_info.bond_flag == true) ? "Have bond info" : "Nothing bond info");
+        //co_printf("%s\r\n", (bond_info.bond_flag == true) ? "Have bond info" : "Nothing bond info");
     }
     
        // Start advertising
index 025c4ff..1057141 100644 (file)
@@ -248,6 +248,7 @@ void button_ticks()
                button_handler(target);
        }
        // add.
+       //co_printf("button_ticks gpios_level_status:%d\r\n",gpios_level_status);
        if (gpios_level_status == 0)    // nothing button to press
        {
                if ((++gpios_press_up_cnt) > (SHORT_TICKS + 1))
index 9dc6871..30a9b9e 100644 (file)
@@ -44,7 +44,7 @@
 #define ADV_NAME_2_4G_PAIR_LEN          14
 #define ADV_NAME_2_4G_PAIR               "2.4G VMouse_P"
 
-#define UART_LOG_ENABLE                 ENABLE     // ÓÉÓÚPA3¸´Ó㬴ò¿ªLOG¿ÉÄÜÔì³ÉijЩ¹¦ÄÜÊÜÏÞ
+#define UART_LOG_ENABLE                 DISABLE     // ÓÉÓÚPA3¸´Ó㬴ò¿ªLOG¿ÉÄÜÔì³ÉijЩ¹¦ÄÜÊÜÏÞ
 #define WDT_ENABLE                      ENABLE      // ¿´ÃŹ·
 
 #define TEST_PIN_ENABLE                 DISABLE     // PD6²âÊԹܽÅ
@@ -60,7 +60,7 @@
 #define MOUSE_SLEEP_ENABLE              ENABLE      // Ê¹ÄÜÊó±êÐÝÃß
 #define MOUSE_ADV_SLEEP_TIMEOUT_SEC     (20)        // Êó±ê˯Ãßʱ¼ä£¬µ¥Î»S
 #define MOUSE_CONN_SLEEP_TIMEOUT_SEC    (60*10)     // Êó±ê˯Ãßʱ¼ä£¬µ¥Î»S
-
+#define SENSOR_SLEEP_TIMEOUT_SEC       (3)     // Êó±ê˯Ãßʱ¼ä£¬µ¥Î»S
 /*
  * TYPEDEFS (ÀàÐͶ¨Òå)
 */
@@ -108,14 +108,14 @@ typedef struct
  * GLOBAL VARIABLES (È«¾Ö±äÁ¿)
  */
 extern device_param_t g_device_param;
-
+extern int sensor_timer;
 /*
  * EXTERN FUNCTIONS (Íⲿº¯Êý)
 */
 #define smart_latency_cnt_reset()       g_device_param.latency_cnt = SMART_LATENCY_TIMEOUT_SEC
 #define bat_detect_cnt_reset()          g_device_param.bat_cnt = BAT_DETECT_TIMEOUT_PER_10SEC
 #define adv_sleep_cnt_reset()           g_device_param.adv_sleep_cnt = MOUSE_ADV_SLEEP_TIMEOUT_SEC
-#define conn_sleep_cnt_reset()          g_device_param.conn_sleep_cnt = MOUSE_CONN_SLEEP_TIMEOUT_SEC
+#define conn_sleep_cnt_reset()          g_device_param.conn_sleep_cnt = MOUSE_CONN_SLEEP_TIMEOUT_SEC; sensor_timer = SENSOR_SLEEP_TIMEOUT_SEC
 
 void system_nosleep_evt_set(system_nosleep_evt_t evt, bool en);
 bool system_nosleep_evt_get(void);
index f7fd22d..28f1f40 100644 (file)
@@ -96,6 +96,7 @@ void user_inflash_init(void)
     {
                user_data.cpi = 1000;
         user_data.activated_dtate = 0;
+        strcpy(user_data.SN,"MSCL123456789");
         user_data.mouse_mode = WORK_2_4G_MODE;
     }
     if (user_data_tmp.mouse_mode == WORK_2_4G_MODE)
index 1815a79..0d98951 100644 (file)
@@ -139,6 +139,7 @@ void button_timer_start(void)
 
 void button_timer_stop(void)
 {
+       //co_printf("button_timer_stop button_timer_status:%d\r\n",button_timer_status);
        system_nosleep_evt_set(SYSTEM_NOSLEEP_BUTTON, false);
        if (button_timer_status == true)
        {
@@ -422,7 +423,7 @@ void button_callback(Button_t btn, PressEvent event, uint8_t repeat)
                     left_right_combo_flag |= 0x40;  // ±êÖ¾×ó¼üΪ×îºó°´Ïµİ´¼ü
                 }
                 leftright_long_press_cnt = 0;
-                co_printf("22left_right_combo_flag:0x%02x\r\n", left_right_combo_flag);
+               // co_printf("22left_right_combo_flag:0x%02x\r\n", left_right_combo_flag);
                 
                 hid_mouse_param.click |= 0x02;
                                user_event_send(USER_EVT_BUTTON_TX, NULL, NULL);
index fa21dec..f345e91 100644 (file)
@@ -17,7 +17,7 @@ typedef struct
        uint32_t repeat;                                // Ñ­»·´ÎÊý
 } led_setting_param_t;
 
-static os_timer_t m_work_mode_led_timer;
+//static os_timer_t m_work_mode_led_timer;
 static os_timer_t m_lowbat_led_timer;
 
 /*************************************************************************************
@@ -92,12 +92,12 @@ void lowbat_led_timer_handle(void *arg)
 
 void lowbat_led_timer_start(void)
 {
-       //os_timer_start(&m_lowbat_led_timer, 800, true);
+       os_timer_start(&m_lowbat_led_timer, 800, true);
 }
 
 void lowbat_led_timer_stop(void)
 {
-       //os_timer_stop(&m_lowbat_led_timer);
+       os_timer_stop(&m_lowbat_led_timer);
 }
 
 /*************************************************************************************
@@ -167,42 +167,42 @@ void work_mode_led_on(void)
                
 }
 
-static void work_mode_timer_handle(void *arg)
-{
+// static void work_mode_timer_handle(void *arg)
+// {
        
-       // if (on_time_count < work_mode_led_setting.on_time_target)
-       // {
-       //      on_time_count++;
-       //      if (on_time_count == work_mode_led_setting.on_time_target)
-       //      {
-       //              work_mode_led_off();
+//     // if (on_time_count < work_mode_led_setting.on_time_target)
+//     // {
+//     //      on_time_count++;
+//     //      if (on_time_count == work_mode_led_setting.on_time_target)
+//     //      {
+//     //              work_mode_led_off();
 
-       //              if (work_mode_led_setting.repeat > 0)   // Öظ´´ÎÊý
-       //              {
-       //                      work_mode_led_setting.repeat--;
-       //                      off_time_target = 0;
-       //              }
+//     //              if (work_mode_led_setting.repeat > 0)   // Öظ´´ÎÊý
+//     //              {
+//     //                      work_mode_led_setting.repeat--;
+//     //                      off_time_target = 0;
+//     //              }
 
-       //              if (work_mode_led_setting.repeat == 0)  // Ï¨µÆ
-       //              {
-       //                      on_time_count = 0;
-       //                      off_time_target = 0;
+//     //              if (work_mode_led_setting.repeat == 0)  // Ï¨µÆ
+//     //              {
+//     //                      on_time_count = 0;
+//     //                      off_time_target = 0;
 
-       //                      work_mode_led_off();
-       //                      os_timer_stop(&m_work_mode_led_timer);
-       //              }
-       //      }
-       // }
-       // else if (off_time_target < work_mode_led_setting.off_time_target)
-       // {
-       //      off_time_target++;
-       //      if (off_time_target == work_mode_led_setting.off_time_target)
-       //      {
-       //              work_mode_led_on();
-       //              on_time_count = 0;
-       //      }
-       // }
-}
+//     //                      work_mode_led_off();
+//     //                      os_timer_stop(&m_work_mode_led_timer);
+//     //              }
+//     //      }
+//     // }
+//     // else if (off_time_target < work_mode_led_setting.off_time_target)
+//     // {
+//     //      off_time_target++;
+//     //      if (off_time_target == work_mode_led_setting.off_time_target)
+//     //      {
+//     //              work_mode_led_on();
+//     //              on_time_count = 0;
+//     //      }
+//     // }
+// }
 
 void work_mode_led_prestart(uint8_t mode)
 {
@@ -258,7 +258,7 @@ void user_led_io_deinit(void)
        bat1_led_set(false);
        bat2_led_set(false);
        bt2_bat3_led_set(false);
-       os_timer_stop(&m_work_mode_led_timer);
+       //os_timer_stop(&m_work_mode_led_timer);
        os_timer_stop(&m_lowbat_led_timer);
 }
 
@@ -274,9 +274,9 @@ void user_led_init(void)
        pmu_set_gpio_value(LED_PORT, MODE1_2_4G_LED_PIN_BITS, 0);
        // co_printf("%s\r\n", __func__);
        //while(1);
-       os_timer_init(&m_work_mode_led_timer, work_mode_timer_handle, NULL);
+       //os_timer_init(&m_work_mode_led_timer, work_mode_timer_handle, NULL);
        os_timer_init(&m_lowbat_led_timer, lowbat_led_timer_handle, NULL);
-       os_timer_start(&m_lowbat_led_timer, 800, true);
-       //lowbat_led_timer_start();
+       //os_timer_start(&m_lowbat_led_timer, 800, true);
+       lowbat_led_timer_start();
        co_printf("%s\r\n", __func__);
 }
index 6fa72df..40002d2 100644 (file)
@@ -73,7 +73,7 @@ const struct jump_table_image_t _jump_table_image __attribute__((section("jump_t
 __attribute__((section("ram_code"))) void pmu_gpio_isr_ram(void)
 {
        uint32_t gpio_value = ool_read32(PMU_REG_GPIOA_V);
-
+       ool_write32(PMU_REG_PORTA_LAST, gpio_value);
        //co_printf("gpio_value:%08x\r\n", gpio_value);
        if (g_device_param.is_enter_sleep == true)
        {
@@ -83,16 +83,28 @@ __attribute__((section("ram_code"))) void pmu_gpio_isr_ram(void)
                {
                        user_event_send(USER_EVT_EXIT_SLEEP, NULL, NULL);
                }
+               
        }
-       else
+       
+       if ((gpio_value & SENSOR_MOTSWK_PIN) == 0)
        {
-               if ((gpio_value & SENSOR_MOTSWK_PIN) == 0)
+               if (g_device_param.is_enter_sleep == true)
+               {
+                       user_event_send(USER_EVT_EXIT_SLEEP, NULL, NULL);
+               }else
                {
-                       //uart_putc_noint_no_wait(UART1, 'm');
+                       user_event_send(USER_EVT_SENSOR_START, NULL, NULL);
                }
+               //pmu_port_wakeup_func_clear(SENSOR_MOTSWK_PIN);//关闭中断,进入激活模式
+               co_printf("SENSOR_MOTSWK_PIN!!!!!!!\r\n");
+               
+               //hid_mouse_timer_start();
+               //user_event_send(USER_EVT_SENSOR_TX, NULL, NULL);
+               //uart_putc_noint_no_wait(UART1, 'm');
        }
-
-       ool_write32(PMU_REG_PORTA_LAST, gpio_value);
+       
+       
+       
 }
 
 void initial_static_memory(uint8_t act_num,
@@ -146,7 +158,7 @@ void user_init_static_memory(void)
  */
 void user_custom_parameters(void)
 {
-#if 1
+#if 0
        __jump_table.addr.addr[0] = 0xBD;
        __jump_table.addr.addr[1] = 0xAD;
        __jump_table.addr.addr[2] = 0xAA;
@@ -184,6 +196,7 @@ void user_custom_parameters(void)
 __attribute__((section("ram_code"))) void user_entry_before_sleep_imp(void)
 {
        //uart_putc_noint_no_wait(UART1, 's');
+       //co_printf("sleep!\r\n");
 }
 
 /*********************************************************************
@@ -209,6 +222,7 @@ __attribute__((section("ram_code"))) void user_entry_after_sleep_imp(void)
        uart_init(UART1, BAUD_RATE_921600);
        //NVIC_EnableIRQ(UART1_IRQn);
        //uart_putc_noint_no_wait(UART1, 'w');
+       //co_printf("sleep UP!\r\n");
        // Do some things here, can be uart print
 
        NVIC_EnableIRQ(PMU_IRQn);
@@ -307,6 +321,7 @@ void user_entry_after_ble_init(void)
        user_led_init();
        user_gpio_init();
        user_sensor_init();
+       hid_mouse_timer_init();
        user_qdec_init();
        user_task_init();
     user_inflash_init();
@@ -333,4 +348,6 @@ void user_entry_after_ble_init(void)
        // Application layer initialization, can included bond manager init, 
        // advertising parameters init, scanning parameter init, GATT service adding, etc.    
        simple_peripheral_init();
+       //system_sleep_enable();
+       //while(1);
 }
index c414471..6503340 100644 (file)
@@ -100,7 +100,7 @@ const uint16_t SENSOR_CPI_TABLE[SENSOR_MAX][5] =
 * Êä ³ö: ÎÞ
 * ×¢ÒâÊÂÏî: ÎÞ
 ************************************************************************************************************************/
-static void sensor_sync_clk(void)
+void sensor_sync_clk(void)
 {
        sensor_sclk_cpu_clr();
        //sensor_delay();
@@ -312,7 +312,11 @@ char snesor_cpi_init(uint16_t cpi)
        else if(cpi == SENSOR_CPI_TABLE[g_device_param.sensor_model][4])//1600
                sensor_write_reg(CONFIGURATION_REG, 0x04);
        else
+       {
+               sensor_write_reg(CONFIGURATION_REG, 0x02);
                ret = 0;
+       }
+               
        if(g_device_param.sensor_model ==PAW3205_3T ||g_device_param.sensor_model ==PAW3205_NT)
        {
                sensor_write_reg(0x09,0x00);    //Lock WP
@@ -429,7 +433,7 @@ uint8_t user_sensor_init(void)
 {
        uint8_t sensor_id1 = 0;
     uint8_t sensor_id2 = 0;
-       pmu_set_aldo_voltage(PMU_ALDO_MODE_NORMAL,PMU_ALDO_VOL_3_3);
+       pmu_set_aldo_voltage(PMU_ALDO_MODE_NORMAL,PMU_ALDO_VOL_2_1);
        // MOTSWK PIN
        pmu_set_port_mux(SENSOR_PIN_PORT, SENSOR_MOTSWK_BIT, PMU_PORT_MUX_GPIO);
        pmu_set_pin_to_PMU(SENSOR_PIN_PORT, SENSOR_MOTSWK_BITS);
@@ -512,7 +516,6 @@ uint8_t CPI_3200;
 void sensor_poweron(void)
 {
        uint8_t reg_val = 0;
-       
        LOG_INFO("[sensosor]%s\r\n", __func__);
        
        sensor_gpio_cpu_init();
@@ -543,10 +546,10 @@ void sensor_poweron(void)
        }
        for (uint8_t i = 0; i < 32; i++)
        {
-               reg_val = 0x82;
+               reg_val = 0x02;
                LOG_INFO("[sensosor]cfg set reg_val: 0x%x\r\n", reg_val);
                sensor_write_reg(CONFIGURATION_REG, reg_val);
-               co_delay_100us(10 * 3);
+               co_delay_100us(3 );
 
                // check reg value
                sensor_read_reg(CONFIGURATION_REG, &reg_val);
@@ -581,7 +584,6 @@ void sensor_poweron(void)
 void sensor_powerdown(void)
 {
        uint8_t reg_val = 0;
-       
        LOG_INFO("[sensosor]%s\r\n", __func__);
     
     sensor_gpio_cpu_init();
@@ -649,30 +651,25 @@ void sensor_powerdown(void)
 ************************************************************************************************************************/
 uint8_t sensor_get_motion(int8_t * p_x_delta, int8_t * p_y_delta)
 {
+       
        #if 1
        uint8_t data = 0,t_motion_x = 0,t_motion_y = 0;
        //uint8_t  deltaX_h, deltaY_h;
        //static uint8_t motion_x = 0,motion_y = 0;
-
-    // if(g_device_param.sensor_model ==PAW3205)
-       // {
-       //      sensor_write_reg(0x09,0x5a);    //Unlock WP
-       // }
-       
-       
+       //sensor_sync_clk();
        sensor_read_reg(PRODUCT_ID1_REG,&data);
        unsigned char read_id_count =0;
        while( data != SENSOR_PID_TABLE[g_device_param.sensor_model][0])
        {
                read_id_count++;
-               if(read_id_count>15)
+               if(read_id_count>20)
                {
                        LOG_INFO("[sensosor]cfg sensor_get_motion rest\r\n");
                        user_sensor_init();
                        break;
                }
                co_delay_10us(10);
-               LOG_INFO("[sensosor]sensor_get_motion:read ID error:!!!\r\n");
+               LOG_INFO("[sensosor]sensor_get_motion:read ID error:!!!ID:0x%02X\r\n",data);
                sensor_sync_clk();
                sensor_read_reg(PRODUCT_ID1_REG,&data);
        }
@@ -732,9 +729,10 @@ uint8_t sensor_get_motion(int8_t * p_x_delta, int8_t * p_y_delta)
                //      deltaY_h += t_motion_y;
                // *p_x_delta = deltaX_h;
                // *p_y_delta = deltaY_h;       
+               //pmu_port_wakeup_func_set(SENSOR_MOTSWK_PIN);//´ò¿ªÖжϣ¬½øÈëÐÝÃßģʽ
                return 0;
        }
-
+       //pmu_port_wakeup_func_set(SENSOR_MOTSWK_PIN);//´ò¿ªÖжϣ¬½øÈëÐÝÃßģʽ
        return 1;
        #else   // »­¿ò²âÊÔ
        static uint8_t index;
index 79516d0..1ba1e00 100644 (file)
@@ -31,37 +31,57 @@ extern void url_send_timer_handle(void *arg);
 __attribute__((section("ram_code"))) void timer0_isr_ram(void)
 {
        timer_clear_interrupt(TIMER0);
-       test_pin_set(1);
+       //test_pin_set(1);
        user_event_send(USER_EVT_SENSOR_TX, NULL, NULL);
-       test_pin_set(0);
+       //test_pin_set(0);
 }
-
+void hid_mouse_timer_init(void)
+{
+       hid_mouse_timer_start();
+}
+int sensor_timer = 0;
+//中断来了就打开定时器获取xy值
 void hid_mouse_timer_start(void)
 {
+       //return ;
+       LOG_INFO("[timer1]%s\r\n", __func__);
+       sensor_timer = 5;
+       
     if (sensot_timer_onoff == false)
     {
-        NVIC_ClearPendingIRQ(TIMER0_IRQn);
-        if (user_data.mouse_mode == WORK_2_4G_MODE)
-            timer_init(TIMER0, (4 * 1000), TIMER_PERIODIC);
-        else
-            timer_init(TIMER0, (8 * 1000), TIMER_PERIODIC);
-        NVIC_EnableIRQ(TIMER0_IRQn);
-        timer_run(TIMER0);
+               
+               //sensor_sync_clk();
+               //co_delay_10us(100000);
+               sensor_gpio_cpu_init();
+               NVIC_ClearPendingIRQ(TIMER0_IRQn);
+               if (user_data.mouse_mode == WORK_2_4G_MODE)
+                       timer_init(TIMER0, (4 * 1000), TIMER_PERIODIC);
+               else
+                       timer_init(TIMER0, (8 * 1000), TIMER_PERIODIC);
+               NVIC_EnableIRQ(TIMER0_IRQn);
+               timer_run(TIMER0);
+
+        pmu_port_wakeup_func_clear(SENSOR_MOTSWK_PIN);//关闭中断,进入激活模式
         system_nosleep_evt_set(SYSTEM_NOSLEEP_TIMER, true);
-        user_sensor_init();
+               //sensor_poweron();
+        //user_sensor_init();
         sensot_timer_onoff = true;
-        LOG_INFO("[timer]%s\r\n", __func__);
+        LOG_INFO("[timer2]%s\r\n", __func__);
     }
 }
-
+//3秒不动就停止定时器打开IO中断
 void hid_mouse_timer_stop(void)
 {
+       //return ;
+       LOG_INFO("[timer1]%s\r\n", __func__);
     if (sensot_timer_onoff == true)
     {
         timer_stop(TIMER0);
+               pmu_port_wakeup_func_set(SENSOR_MOTSWK_PIN);//打开中断,进入休眠模式
         system_nosleep_evt_set(SYSTEM_NOSLEEP_TIMER, false);
         sensot_timer_onoff = false;
-        LOG_INFO("[timer]%s\r\n", __func__);
+               
+        LOG_INFO("[timer2]%s\r\n", __func__);
     }
 }
 
@@ -89,7 +109,7 @@ void task_1s_timer_handle(void *arg)
                if (curr_conn_index_get() == BLE_CONN_INDEX_INVALID)
                {
                        g_device_param.adv_sleep_cnt--;
-                       LOG_INFO("[timer]adv_sleep_cnt:%d\r\n", g_device_param.adv_sleep_cnt);
+                       //LOG_INFO("[timer]adv_sleep_cnt:%d\r\n", g_device_param.adv_sleep_cnt);
                        if (g_device_param.adv_sleep_cnt == 0)
                        {
                                user_event_send(USER_EVT_ENTER_SLEEP, NULL, NULL);
@@ -97,11 +117,25 @@ void task_1s_timer_handle(void *arg)
                }
                else
                {
+                       if(sensot_timer_onoff != false)
+                       {
+                               if(sensor_timer <= 0)
+                               {
+                                       //sensor_timer = 3;
+                                       
+                                       user_event_send(USER_EVT_SENSOR_STOP, NULL, NULL);
+                                       
+                               }
+                               sensor_timer--;
+                       }else
+                               sensor_timer = 0;
+                       
                        g_device_param.conn_sleep_cnt--;
                        //LOG_INFO("[timer]conn_sleep_cnt:%d\r\n", g_device_param.conn_sleep_cnt);
                        //user_parse_data("{\"cmd\":\"get_battery_power\"}");
                        if (g_device_param.conn_sleep_cnt == 0)
                        {
+                               
                                user_event_send(USER_EVT_ENTER_SLEEP, NULL, NULL);
                        }
                }
@@ -114,6 +148,7 @@ void task_1s_timer_handle(void *arg)
 
        if (system_nosleep_evt_get() == false)
        {
+               //LOG_INFO("[timer]system_sleep_enable:!!!!!!!\r\n");
                system_sleep_enable();
        }
 }
index e0bf941..4450a9d 100644 (file)
@@ -31,5 +31,5 @@ void user_timer_init(void);
 
 void hid_mouse_timer_start(void);
 void hid_mouse_timer_stop(void);
-
+void hid_mouse_timer_init(void);
 #endif /* __TIMER_H */
index 11efba1..5edac6a 100644 (file)
@@ -198,6 +198,7 @@ void user_parse_data(char *data)
        if(send_buf)
                os_free(send_buf);
 }
+extern os_timer_t update_param_timer;
 static int user_task_func(os_event_t *param)
 {
        switch (param->event_id)
@@ -212,7 +213,13 @@ static int user_task_func(os_event_t *param)
             hid_mouse_param.delta_y = 0;
             hid_mouse_param.wheel = 0;
                        break;
-
+               case USER_EVT_SENSOR_START:
+               
+                       hid_mouse_timer_start();
+                       break;
+               case USER_EVT_SENSOR_STOP:
+                       hid_mouse_timer_stop();
+                       break;
                case USER_EVT_SENSOR_TX:
                        if (sensor_get_motion(&hid_mouse_param.delta_x, &hid_mouse_param.delta_y) == 0)
             {
@@ -243,8 +250,9 @@ static int user_task_func(os_event_t *param)
                        user_parse_data(param->param);
                        break;
                case USER_EVT_ENTER_SLEEP:
+
                        g_device_param.is_enter_sleep = true;
-            sensor_powerdown();
+            //sensor_powerdown();
                        user_led_io_deinit();
                        user_qdec_deinit();
                        hid_mouse_timer_stop();
@@ -254,6 +262,7 @@ static int user_task_func(os_event_t *param)
                        bat2_led_set(false);
                        bt2_bat3_led_set(false);
                        lowbat_led_timer_stop();
+                       button_timer_stop();
             #if WDT_ENABLE
             wdt_stop();
             #endif
@@ -262,13 +271,12 @@ static int user_task_func(os_event_t *param)
                        else
                                gap_disconnect_req(curr_conn_index_get());
                        co_printf("enter sleep!!\r\n");
+                       //system_sleep_enable();
                        break;
 
                case USER_EVT_EXIT_SLEEP:
                        // co_printf("exit sleep!!\r\n");
-                       // wdt_init(WDT_ACT_RST_CHIP, 1);
-                       //      wdt_start();
-                       //      while(1);//重启
+                       hid_mouse_timer_start();
                        g_device_param.is_enter_sleep = false;
                        work_mode_led_prestart(LED_BLINK_1S);
                        adv_sleep_cnt_reset();
@@ -276,7 +284,7 @@ static int user_task_func(os_event_t *param)
                        battery_voltage_get();
                        user_keyscan_io_init();
                        user_qdec_init();
-                       sensor_poweron();
+                       //sensor_poweron();
                        os_timer_start(&m_task_1s_timer, 1000, true);
                        os_timer_start(&m_task_10s_timer, 10000, true);
             #if WDT_ENABLE
index 35e372d..ce8e3af 100644 (file)
@@ -11,6 +11,8 @@
  */
 enum user_event_t {
     USER_EVT_BUTTON_TX,
+    USER_EVT_SENSOR_START,
+    USER_EVT_SENSOR_STOP,
     USER_EVT_SENSOR_TX,
     USER_EVT_QDEC_TX,
     USER_EVT_BLE_RX,
index 6c6c941..e8cd735 100644 (file)
       <flags>0</flags>
       <showCmd>1</showCmd>
       <MinPosition>
-        <xPos>-32000</xPos>
-        <yPos>-32000</yPos>
+        <xPos>-1</xPos>
+        <yPos>-1</yPos>
       </MinPosition>
       <MaxPosition>
         <xPos>-1</xPos>
         <yPos>-1</yPos>
       </MaxPosition>
       <NormalPosition>
-        <Top>178</Top>
-        <Left>203</Left>
-        <Right>1702</Right>
-        <Bottom>1010</Bottom>
+        <Top>253</Top>
+        <Left>584</Left>
+        <Right>1859</Right>
+        <Bottom>926</Bottom>
       </NormalPosition>
     </WindowPosition>
     <MDIClientArea>
       <RegID>0</RegID>
       <MDITabState>
-        <Len>539</Len>
-        <Data>01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000003000000020000000100000062483A5C312E776F726B5C362EB8BBC8F0C0A45C312ECAF3B1EA5C764D6F7573655C322E636F64655C312E6D6F7573655C6578616D706C65735C6E6F6E655F65766D5C626C655F766F6963655F6D6F7573655C636F64655C757365725F7461736B2E63000000000B757365725F7461736B2E6300000000C5D4F200FFFFFFFF5F483A5C312E776F726B5C362EB8BBC8F0C0A45C312ECAF3B1EA5C764D6F7573655C322E636F64655C312E6D6F7573655C6578616D706C65735C6E6F6E655F65766D5C626C655F766F6963655F6D6F7573655C636F64655C73656E736F722E63000000000873656E736F722E6300000000FFDC7800FFFFFFFF5E483A5C312E776F726B5C362EB8BBC8F0C0A45C312ECAF3B1EA5C764D6F7573655C322E636F64655C312E6D6F7573655C6578616D706C65735C6E6F6E655F65766D5C626C655F766F6963655F6D6F7573655C636F64655C74696D65722E63000000000774696D65722E6300000000BECEA100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000045020000200100009E06000045030000</Data>
+        <Len>60</Len>
+        <Data>010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000000000000</Data>
       </MDITabState>
     </MDIClientArea>
     <ViewEx>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
-          <Data>1901000030010000B5050000BE010000</Data>
+          <Data>9F030000D10100003B0800005F020000</Data>
         </RectRecentFloat>
       </Window>
       <Window>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>03000000660000006B0100005B020000</Data>
+          <Data>03000000660000006B010000BC010000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>03000000660000006B0100005B020000</Data>
+          <Data>03000000660000006B010000BC010000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>03000000660000006B0100005B020000</Data>
+          <Data>03000000660000006B010000BC010000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>03000000660000006B0100005B020000</Data>
+          <Data>03000000660000006B010000BC010000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>000000008C020000CB05000006030000</Data>
+          <Data>00000000ED010000EB04000067020000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>030000008F020000C8050000ED020000</Data>
+          <Data>03000000F0010000E80400004E020000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>03000000660000006B010000BC020000</Data>
+          <Data>03000000660000006B010000BC010000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>030000008F020000C8050000ED020000</Data>
+          <Data>03000000F0010000E80400004E020000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>030000008F020000C8050000ED020000</Data>
+          <Data>03000000F0010000E80400004E020000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>030000008F020000C8050000ED020000</Data>
+          <Data>03000000F0010000E80400004E020000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>030000008F020000C8050000ED020000</Data>
+          <Data>03000000F0010000E80400004E020000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>0000000006030000CB05000019030000</Data>
+          <Data>0000000067020000EB0400007A020000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
       </Window>
       <DockMan>
         <Len>3312</Len>
-        <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DD00000090050000E1000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000001901000030010000B5050000BE010000F40000004F00000090050000DD0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000025020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000C504000030010000B505000006030000A00400004F000000900500002502000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF6E0100004F00000072010000740200000100000002000010040000000100000012FFFFFFD2040000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000250000003001000093010000B6030000000000004F0000006E010000740200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000011020000900500001502000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000025000000F6020000B505000098030000000000001502000090050000B702000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000015020000CC020000B702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000074020000CB05000078020000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000025000000BA030000F0050000480400000000000078020000CB050000060300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data>
+        <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DD00000090050000E1000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000009F030000D10100003B0800005F020000F40000004F00000090050000DD0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000025020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000004B070000D10100003B080000A7030000A00400004F000000900500002502000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF6E0100004F00000072010000D50100000100000002000010040000000100000012FFFFFFD2040000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000AB020000D10100001904000057030000000000004F0000006E010000D50100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000011020000900500001502000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000AB020000970300003B08000039040000000000001502000090050000B702000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000015020000CC020000B702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000D5010000EB040000D9010000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000AB0200005B03000096070000E903000000000000D9010000EB040000670200000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data>
       </DockMan>
       <ToolBar>
         <RegID>59392</RegID>
         <Name>File</Name>
         <Buttons>
           <Len>2946</Len>
-          <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000E534C5F535741595F535441545553960000000000000014000E534C5F535741595F53544154555313534C5F444952454354494F4E5F5354415455530B534C5F44495354414E4345096D6573685F696E697412646563696D616C5F706F696E745F7365656E0D75617274315F6973725F72616D0F696E7465726E616C5F6D616C6C6F630648415F42554618737065616B65725F676174745F6164645F736572766963650D6F735F74696D65725F696E69740D706D755F6973725F72616D5F430E7379735F74696D65725F696E69740B636F6E6669675F666C616717534C5F5343374132305F4932635F5370695F5772697465117472616E73706172656E745F73746172740D6170705F61745F726563765F630D75617274305F6973725F72616D0A756172745F706172616D15766353706F72744D6F74696F6E416C676F496E69741273656E645F6872735F646174615F666C61670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data>
+          <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000400020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000400000000000000000000000000000000000001000000010000009600000002002050000000000E534C5F535741595F535441545553960000000000000014000E534C5F535741595F53544154555313534C5F444952454354494F4E5F5354415455530B534C5F44495354414E4345096D6573685F696E697412646563696D616C5F706F696E745F7365656E0D75617274315F6973725F72616D0F696E7465726E616C5F6D616C6C6F630648415F42554618737065616B65725F676174745F6164645F736572766963650D6F735F74696D65725F696E69740D706D755F6973725F72616D5F430E7379735F74696D65725F696E69740B636F6E6669675F666C616717534C5F5343374132305F4932635F5370695F5772697465117472616E73706172656E745F73746172740D6170705F61745F726563765F630D75617274305F6973725F72616D0A756172745F706172616D15766353706F72744D6F74696F6E416C676F496E69741273656E645F6872735F646174615F666C61670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data>
         </Buttons>
         <OriginalItems>
           <Len>1423</Len>
         <Name>Build</Name>
         <Buttons>
           <Len>990</Len>
-          <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000002001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000F626C655F766F6963655F6D6F757365960000000000000001000F626C655F766F6963655F6D6F757365000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
+          <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000002001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000F626C655F766F6963655F6D6F757365960000000000000001000F626C655F766F6963655F6D6F757365000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
         </Buttons>
         <OriginalItems>
           <Len>583</Len>
         <Name>Debug</Name>
         <Buttons>
           <Len>2373</Len>
-          <Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data>
+          <Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data>
         </Buttons>
         <OriginalItems>
           <Len>898</Len>
     </ViewEx>
   </WinLayoutEx>
 
-  <MDIGroups>
-    <Orientation>1</Orientation>
-    <ActiveMDIGroup>0</ActiveMDIGroup>
-    <MDIGroup>
-      <Size>100</Size>
-      <ActiveTab>2</ActiveTab>
-      <Doc>
-        <Name>..\code\user_task.c</Name>
-        <ColumnNumber>25</ColumnNumber>
-        <TopLine>16</TopLine>
-        <CurrentLine>31</CurrentLine>
-        <Folding>1</Folding>
-        <ContractedFolders></ContractedFolders>
-        <PaneID>0</PaneID>
-      </Doc>
-      <Doc>
-        <Name>..\code\sensor.c</Name>
-        <ColumnNumber>64</ColumnNumber>
-        <TopLine>283</TopLine>
-        <CurrentLine>310</CurrentLine>
-        <Folding>1</Folding>
-        <ContractedFolders></ContractedFolders>
-        <PaneID>0</PaneID>
-      </Doc>
-      <Doc>
-        <Name>..\code\timer.c</Name>
-        <ColumnNumber>40</ColumnNumber>
-        <TopLine>59</TopLine>
-        <CurrentLine>79</CurrentLine>
-        <Folding>1</Folding>
-        <ContractedFolders></ContractedFolders>
-        <PaneID>0</PaneID>
-      </Doc>
-    </MDIGroup>
-  </MDIGroups>
-
 </ProjectGui>
index e7db2e6..5568ff5 100644 (file)
@@ -1,4 +1,4 @@
-;#<FEEDBACK># ARM Linker, 5060960: Last Updated: Thu Mar 21 11:51:34 2024
+;#<FEEDBACK># ARM Linker, 5060960: Last Updated: Fri Mar 22 18:19:27 2024
 ;VERSION 0.2
 ;FILE adc.o
 __asm___5_adc_c_e3544fbe____REV16 <= USED 0
@@ -203,7 +203,6 @@ speaker_codec_init <= USED 0
 __asm___14_driver_efuse_c_9109bb6a____REV16 <= USED 0
 __asm___14_driver_efuse_c_9109bb6a____REVSH <= USED 0
 __asm___14_driver_efuse_c_9109bb6a____RRX <= USED 0
-efuse_get_chip_unique_id <= USED 0
 efuse_get_chip_unique_id_new <= USED 0
 efuse_write <= USED 0
 ;FILE driver_exti.o
@@ -242,7 +241,6 @@ __asm___12_driver_pmu_c_62fa0f09____RRX <= USED 0
 pmu_disable_irq <= USED 0
 pmu_enable_charge <= USED 0
 pmu_get_gpio_port_value <= USED 0
-pmu_port_wakeup_func_set <= USED 0
 pmu_set_led1_as_pwm <= USED 0
 pmu_set_led2_as_pwm <= USED 0
 pmu_set_lp_clk_src <= USED 0
@@ -405,7 +403,6 @@ l2cc_dbg_pdu_unpack <= USED 0
 __asm___5_led_c_96aee7d6____REV16 <= USED 0
 __asm___5_led_c_96aee7d6____REVSH <= USED 0
 __asm___5_led_c_96aee7d6____RRX <= USED 0
-lowbat_led_timer_start <= USED 0
 work_mode_led_off <= USED 0
 work_mode_led_on <= USED 0
 ;FILE m_al_activity.o
@@ -947,6 +944,8 @@ __asm___8_sensor_c_f4deda73____REV16 <= USED 0
 __asm___8_sensor_c_f4deda73____REVSH <= USED 0
 __asm___8_sensor_c_f4deda73____RRX <= USED 0
 sensor_gpio_pmu_init <= USED 0
+sensor_powerdown <= USED 0
+sensor_poweron <= USED 0
 ;FILE sha1.o
 utils_sha1 <= USED 0
 utils_sha1_clone <= USED 0
index 93607bc..d6ced0a 100644 (file)
@@ -1,4 +1,4 @@
-;#<FEEDBACK># ARM Linker, 5060960: Last Updated: Thu Mar 21 14:57:23 2024
+;#<FEEDBACK># ARM Linker, 5060960: Last Updated: Thu Mar 21 15:32:33 2024
 ;VERSION 0.2
 ;FILE adv_check_mode.o
 __asm___16_adv_check_mode_c_9741a236____REV16 <= USED 0