Index: format/app_mouse.format
===================================================================
--- /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/format/app_mouse.format	(revision 5210)
+++ /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/format/app_mouse.format	(working copy)
@@ -456,8 +456,15 @@
 1 mem_24g_rf_data_flag
 1 mem_device_tx_device_info_flag
 10 mem_mouse_temp_buff
-)
 
+70 mem_ui_le_uuid_table_new
+2 mem_le_protocol_tx_handle
+2 mem_le_protocol_rx_handle
+1 mem_le_service_change_flag
+)
+(
+0x33 ROM_MAX_HANDLE
+)
 (
 //data type
 5 DATA_DPI
Index: output/eeprom.dat
===================================================================
--- /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/output/eeprom.dat	(revision 5224)
+++ /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/output/eeprom.dat	(working copy)
@@ -2,8 +2,8 @@
 02
 aa
 55
-fa
-19
+72
+1a
 20
 20
 00
@@ -295,11 +295,11 @@
 c0
 63
 06
-3d
+5b
 c0
 64
 06
-3f
+5d
 c0
 64
 84
@@ -311,7 +311,7 @@
 c0
 66
 85
-cf
+ed
 c0
 67
 04
@@ -322,8 +322,8 @@
 93
 c0
 68
-05
-fe
+06
+1c
 c0
 69
 04
@@ -359,7 +359,7 @@
 c0
 6c
 86
-47
+65
 c0
 6d
 04
@@ -1835,11 +1835,11 @@
 20
 40
 06
-34
+52
 20
 40
 06
-49
+67
 20
 40
 41
@@ -1859,7 +1859,7 @@
 20
 40
 06
-37
+55
 20
 40
 04
@@ -3275,7 +3275,7 @@
 c3
 0a
 06
-39
+57
 20
 40
 61
@@ -3323,7 +3323,7 @@
 20
 20
 06
-39
+57
 20
 40
 3e
@@ -4159,7 +4159,7 @@
 20
 20
 06
-3b
+59
 da
 60
 49
@@ -4643,7 +4643,7 @@
 20
 40
 06
-31
+4f
 68
 48
 c9
@@ -4763,11 +4763,11 @@
 c0
 1e
 06
-41
+5f
 c0
 1c
 86
-43
+61
 c0
 1d
 04
@@ -4779,7 +4779,7 @@
 c0
 0a
 86
-45
+63
 c0
 0a
 04
@@ -4847,7 +4847,7 @@
 24
 3a
 06
-3b
+59
 6f
 e0
 c8
@@ -5823,11 +5823,19 @@
 c0
 05
 05
-b1
+b3
 c0
 09
 05
+c2
+c0
+08
+05
+d1
 c0
+04
+05
+e0
 20
 20
 1c
@@ -5855,7 +5863,7 @@
 c2
 81
 85
-bb
+bd
 6f
 e1
 44
@@ -5883,11 +5891,11 @@
 24
 22
 85
-b7
+b9
 24
 34
 05
-b7
+b9
 20
 20
 1d
@@ -5952,6 +5960,118 @@
 20
 1d
 bc
+20
+40
+1e
+b0
+18
+c2
+04
+00
+20
+40
+05
+d7
+18
+42
+0c
+00
+20
+40
+1e
+bd
+20
+20
+1d
+db
+6f
+e1
+09
+9e
+1f
+e6
+7c
+33
+20
+61
+00
+00
+6f
+e0
+ce
+37
+24
+7a
+00
+00
+70
+4e
+37
+01
+58
+00
+4d
+ed
+67
+e1
+43
+96
+20
+60
+00
+00
+20
+40
+1e
+b0
+18
+c2
+04
+00
+20
+40
+05
+e7
+20
+40
+05
+d7
+18
+42
+0c
+00
+20
+40
+1e
+bd
+20
+20
+1d
+18
+6f
+e0
+ce
+37
+20
+7a
+00
+00
+70
+4e
+37
+00
+58
+00
+97
+32
+67
+e1
+43
+96
+20
+60
+00
+00
 78
 54
 7c
@@ -5966,8 +6086,8 @@
 d5
 20
 40
-05
-e2
+06
+00
 58
 00
 00
@@ -5990,8 +6110,8 @@
 c3
 20
 40
-05
-fb
+06
+19
 6f
 e0
 c8
@@ -6014,8 +6134,8 @@
 01
 20
 40
-05
-f1
+06
+0f
 20
 20
 45
@@ -6042,8 +6162,8 @@
 2c
 c0
 05
-85
-e7
+86
+05
 20
 20
 42
@@ -6058,8 +6178,8 @@
 15
 c0
 7f
-85
-ed
+86
+0b
 68
 48
 c9
@@ -6130,8 +6250,8 @@
 00
 20
 40
-05
-fe
+06
+1c
 20
 40
 41
@@ -6155,15 +6275,15 @@
 20
 40
 06
-05
+23
 20
 40
 06
-14
+32
 20
 40
 06
-21
+3f
 20
 20
 41
@@ -6175,7 +6295,7 @@
 20
 40
 06
-2e
+4c
 20
 40
 41
@@ -6195,7 +6315,7 @@
 20
 40
 06
-2e
+4c
 20
 40
 41
@@ -6215,7 +6335,7 @@
 20
 40
 06
-2e
+4c
 20
 40
 41
@@ -6259,7 +6379,7 @@
 c0
 7f
 86
-1d
+3b
 20
 20
 41
@@ -6271,7 +6391,7 @@
 20
 40
 06
-31
+4f
 68
 48
 c9
@@ -6311,7 +6431,7 @@
 c0
 7f
 86
-2a
+48
 20
 20
 41
@@ -6323,7 +6443,7 @@
 20
 40
 06
-31
+4f
 68
 48
 c9
@@ -6367,7 +6487,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6375,7 +6495,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6383,7 +6503,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6391,7 +6511,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6399,7 +6519,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6407,7 +6527,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6415,7 +6535,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6423,7 +6543,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6431,7 +6551,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6439,7 +6559,7 @@
 20
 20
 06
-4c
+6a
 20
 75
 80
@@ -6451,7 +6571,7 @@
 20
 20
 06
-4c
+6a
 68
 48
 cd
@@ -6471,7 +6591,7 @@
 20
 22
 86
-68
+86
 60
 48
 cd
@@ -6511,19 +6631,19 @@
 20
 40
 06
-6a
+88
 20
 40
 06
-76
+94
 20
 40
 06
-6d
+8b
 24
 22
 86
-5a
+78
 6f
 e2
 0e
@@ -6539,7 +6659,7 @@
 24
 22
 86
-5a
+78
 58
 00
 0e
@@ -6607,7 +6727,7 @@
 c2
 00
 06
-70
+8e
 ef
 e2
 00
@@ -6652,8 +6772,8 @@
 20
 3f
 a5
-62
-d1
+d4
+9e
 aa
 55
 40
@@ -6799,8 +6919,8 @@
 00
 00
 12
-01
-1b
+82
+1f
 aa
 55
 0c
@@ -7019,7 +7139,7 @@
 db
 4b
 07
-05
+03
 aa
 55
 01
@@ -7110,9 +7230,9 @@
 00
 a8
 40
-15
-26
-11
+95
+36
+21
 52
 08
 53
@@ -8035,19 +8155,89 @@
 00
 aa
 55
+04
+00
+33
+4e
+36
+00
+39
+00
+aa
+55
+36
+00
+ed
+4d
+34
+00
+02
+00
+28
+02
+00
+ff
+35
+00
+02
+03
+28
+01
+10
+36
+00
+02
+01
+ff
+01
+00
+37
+00
+02
+02
+29
+02
+00
+00
+38
+00
+02
+03
+28
+01
+0c
+39
+00
+02
+02
+ff
+01
+00
+3a
+00
+02
+02
+29
+02
+00
+00
+00
+00
+aa
+55
 03
 00
 d4
 4d
-73
-25
+31
+26
 00
 55
 aa
 aa
 55
-41
-9e
+0e
+a9
 ff
 20
 20
@@ -8856,7 +9046,7 @@
 20
 40
 06
-2e
+4c
 20
 40
 04
@@ -9072,7 +9262,7 @@
 86
 2d
 02
-17
+35
 20
 20
 00
@@ -9589,5 +9779,5 @@
 00
 00
 00
-7b
-6c
+ee
+ee
Index: output/flash.dat
===================================================================
--- /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/output/flash.dat	(revision 5224)
+++ /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/output/flash.dat	(working copy)
@@ -2,8 +2,8 @@
 02
 aa
 55
-fa
-19
+72
+1a
 20
 20
 00
@@ -295,11 +295,11 @@
 c0
 63
 06
-3d
+5b
 c0
 64
 06
-3f
+5d
 c0
 64
 84
@@ -311,7 +311,7 @@
 c0
 66
 85
-cf
+ed
 c0
 67
 04
@@ -322,8 +322,8 @@
 93
 c0
 68
-05
-fe
+06
+1c
 c0
 69
 04
@@ -359,7 +359,7 @@
 c0
 6c
 86
-47
+65
 c0
 6d
 04
@@ -1835,11 +1835,11 @@
 20
 40
 06
-34
+52
 20
 40
 06
-49
+67
 20
 40
 41
@@ -1859,7 +1859,7 @@
 20
 40
 06
-37
+55
 20
 40
 04
@@ -3275,7 +3275,7 @@
 c3
 0a
 06
-39
+57
 20
 40
 61
@@ -3323,7 +3323,7 @@
 20
 20
 06
-39
+57
 20
 40
 3e
@@ -4159,7 +4159,7 @@
 20
 20
 06
-3b
+59
 da
 60
 49
@@ -4643,7 +4643,7 @@
 20
 40
 06
-31
+4f
 68
 48
 c9
@@ -4763,11 +4763,11 @@
 c0
 1e
 06
-41
+5f
 c0
 1c
 86
-43
+61
 c0
 1d
 04
@@ -4779,7 +4779,7 @@
 c0
 0a
 86
-45
+63
 c0
 0a
 04
@@ -4847,7 +4847,7 @@
 24
 3a
 06
-3b
+59
 6f
 e0
 c8
@@ -5823,11 +5823,19 @@
 c0
 05
 05
-b1
+b3
 c0
 09
 05
+c2
+c0
+08
+05
+d1
 c0
+04
+05
+e0
 20
 20
 1c
@@ -5855,7 +5863,7 @@
 c2
 81
 85
-bb
+bd
 6f
 e1
 44
@@ -5883,11 +5891,11 @@
 24
 22
 85
-b7
+b9
 24
 34
 05
-b7
+b9
 20
 20
 1d
@@ -5952,6 +5960,118 @@
 20
 1d
 bc
+20
+40
+1e
+b0
+18
+c2
+04
+00
+20
+40
+05
+d7
+18
+42
+0c
+00
+20
+40
+1e
+bd
+20
+20
+1d
+db
+6f
+e1
+09
+9e
+1f
+e6
+7c
+33
+20
+61
+00
+00
+6f
+e0
+ce
+37
+24
+7a
+00
+00
+70
+4e
+37
+01
+58
+00
+4d
+ed
+67
+e1
+43
+96
+20
+60
+00
+00
+20
+40
+1e
+b0
+18
+c2
+04
+00
+20
+40
+05
+e7
+20
+40
+05
+d7
+18
+42
+0c
+00
+20
+40
+1e
+bd
+20
+20
+1d
+18
+6f
+e0
+ce
+37
+20
+7a
+00
+00
+70
+4e
+37
+00
+58
+00
+97
+32
+67
+e1
+43
+96
+20
+60
+00
+00
 78
 54
 7c
@@ -5966,8 +6086,8 @@
 d5
 20
 40
-05
-e2
+06
+00
 58
 00
 00
@@ -5990,8 +6110,8 @@
 c3
 20
 40
-05
-fb
+06
+19
 6f
 e0
 c8
@@ -6014,8 +6134,8 @@
 01
 20
 40
-05
-f1
+06
+0f
 20
 20
 45
@@ -6042,8 +6162,8 @@
 2c
 c0
 05
-85
-e7
+86
+05
 20
 20
 42
@@ -6058,8 +6178,8 @@
 15
 c0
 7f
-85
-ed
+86
+0b
 68
 48
 c9
@@ -6130,8 +6250,8 @@
 00
 20
 40
-05
-fe
+06
+1c
 20
 40
 41
@@ -6155,15 +6275,15 @@
 20
 40
 06
-05
+23
 20
 40
 06
-14
+32
 20
 40
 06
-21
+3f
 20
 20
 41
@@ -6175,7 +6295,7 @@
 20
 40
 06
-2e
+4c
 20
 40
 41
@@ -6195,7 +6315,7 @@
 20
 40
 06
-2e
+4c
 20
 40
 41
@@ -6215,7 +6335,7 @@
 20
 40
 06
-2e
+4c
 20
 40
 41
@@ -6259,7 +6379,7 @@
 c0
 7f
 86
-1d
+3b
 20
 20
 41
@@ -6271,7 +6391,7 @@
 20
 40
 06
-31
+4f
 68
 48
 c9
@@ -6311,7 +6431,7 @@
 c0
 7f
 86
-2a
+48
 20
 20
 41
@@ -6323,7 +6443,7 @@
 20
 40
 06
-31
+4f
 68
 48
 c9
@@ -6367,7 +6487,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6375,7 +6495,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6383,7 +6503,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6391,7 +6511,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6399,7 +6519,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6407,7 +6527,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6415,7 +6535,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6423,7 +6543,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6431,7 +6551,7 @@
 20
 20
 06
-4c
+6a
 70
 4d
 ce
@@ -6439,7 +6559,7 @@
 20
 20
 06
-4c
+6a
 20
 75
 80
@@ -6451,7 +6571,7 @@
 20
 20
 06
-4c
+6a
 68
 48
 cd
@@ -6471,7 +6591,7 @@
 20
 22
 86
-68
+86
 60
 48
 cd
@@ -6511,19 +6631,19 @@
 20
 40
 06
-6a
+88
 20
 40
 06
-76
+94
 20
 40
 06
-6d
+8b
 24
 22
 86
-5a
+78
 6f
 e2
 0e
@@ -6539,7 +6659,7 @@
 24
 22
 86
-5a
+78
 58
 00
 0e
@@ -6607,7 +6727,7 @@
 c2
 00
 06
-70
+8e
 ef
 e2
 00
@@ -6652,8 +6772,8 @@
 20
 3f
 a5
-62
-d1
+d4
+9e
 aa
 55
 40
@@ -6799,8 +6919,8 @@
 00
 00
 12
-01
-1b
+82
+1f
 aa
 55
 0c
@@ -7019,7 +7139,7 @@
 db
 4b
 07
-05
+03
 aa
 55
 01
@@ -7110,9 +7230,9 @@
 00
 a8
 40
-15
-26
-11
+95
+36
+21
 52
 08
 53
@@ -8035,19 +8155,89 @@
 00
 aa
 55
+04
+00
+33
+4e
+36
+00
+39
+00
+aa
+55
+36
+00
+ed
+4d
+34
+00
+02
+00
+28
+02
+00
+ff
+35
+00
+02
+03
+28
+01
+10
+36
+00
+02
+01
+ff
+01
+00
+37
+00
+02
+02
+29
+02
+00
+00
+38
+00
+02
+03
+28
+01
+0c
+39
+00
+02
+02
+ff
+01
+00
+3a
+00
+02
+02
+29
+02
+00
+00
+00
+00
+aa
+55
 03
 00
 d4
 4d
-73
-25
+31
+26
 00
 55
 aa
 aa
 55
-41
-9e
+0e
+a9
 ff
 20
 20
@@ -8856,7 +9046,7 @@
 20
 40
 06
-2e
+4c
 20
 40
 04
@@ -9072,7 +9262,7 @@
 86
 2d
 02
-17
+35
 20
 20
 00
@@ -9589,5 +9779,5 @@
 00
 00
 00
-7b
-6c
+ee
+ee
Index: output/memmap.format
===================================================================
--- /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/output/memmap.format	(revision 5210)
+++ /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/output/memmap.format	(working copy)
@@ -2319,6 +2319,10 @@
 0x4de1 mem_24g_rf_data_flag
 0x4de2 mem_device_tx_device_info_flag
 0x4de3 mem_mouse_temp_buff
+0x4ded mem_ui_le_uuid_table_new
+0x4e33 mem_le_protocol_tx_handle
+0x4e35 mem_le_protocol_rx_handle
+0x4e37 mem_le_service_change_flag
 0x48d4 mem_remote_car_hard_soft_switch
 0x48d5 mem_remote_car_queue_each_size
 0x48d6 mem_remote_car_queue_length
Index: output/program.lis
===================================================================
--- /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/output/program.lis	(revision 5224)
+++ /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/output/program.lis	(working copy)
@@ -78,14 +78,14 @@
 0045 c04581b9 beq patch11_3 ,p_initialize_radio_cont 
 0046 c05681c8 beq patch15_5 ,p_app_init 
 0047 c0618330 beq patch18_3 ,p_mouse_start_work 
-0048 c063063d beq patch18_6 ,p_mouse_app_enter_hibernate 
-0049 c064063f beq patch19_0 ,p_mouse_setgpio_hibernate 
+0048 c063065b beq patch18_6 ,p_mouse_app_enter_hibernate 
+0049 c064065d beq patch19_0 ,p_mouse_setgpio_hibernate 
 004a c0648451 beq patch19_1 ,p_mouse_lpm_before_common 
 004b c0658371 beq patch19_3 ,p_mouse_adc_read_start 
-004c c06685cf beq patch19_5 ,p_mouse_motion 
+004c c06685ed beq patch19_5 ,p_mouse_motion 
 004d c067048a beq patch19_6 ,p_mouse_dpi_process 
 004e c0678493 beq patch19_7 ,p_mouse_seting_dpi 
-004f c06805fe beq patch1a_0 ,p_mouse_check_key_gpio 
+004f c068061c beq patch1a_0 ,p_mouse_check_key_gpio 
 0050 c069042c beq patch1a_2 ,p_mouse_init_sunt 
 0051 c069843c beq patch1a_3 ,p_mouse_sensor_poweron 
 0052 c06a84a4 beq patch1a_5 ,p_mouse_priority_bb_event 
@@ -94,7 +94,7 @@
 0055 c06f016e beq patch1b_6 ,p_mouse_ready_reconnection_by_button 
 0056 c0700157 beq patch1c_0 ,p_mouse_led_off 
 0057 c0708154 beq patch1c_1 ,p_mouse_led_on 
-0058 c06c8647 beq patch1b_1 ,p_mouse_start_discovery 
+0058 c06c8665 beq patch1b_1 ,p_mouse_start_discovery 
 0059 c06d04fd beq patch1b_2 ,p_mouse_stop_discovery 
 005a c06e0425 beq patch1b_4 ,p_mouse_store_device_info 
 005b 2020137e branch loop 
@@ -595,13 +595,13 @@
 
 p_mouse_init:
 01c8 20406e5e call enable_authrom 
-01c9 20400634 call p_mouse_setting_config 
-01ca 20400649 call p_mouse_report_param_set 
+01c9 20400652 call p_mouse_setting_config 
+01ca 20400667 call p_mouse_report_param_set 
 01cb 204041e7 call mouse_init_sunt 
 01cc 20758000 rtn wake 
 01cd 20400494 call p_mouse_seting_sensor_type 
 01ce 20404766 call mouse_drawing_optima_init 
-01cf 20400637 call p_mouse_cb_fuction 
+01cf 20400655 call p_mouse_cb_fuction 
 01d0 20400446 call p_mouse_sensor_powerdown 
 01d1 20203c7f branch mouse_init_wireless 
 
@@ -1063,7 +1063,7 @@
 
 p_mouse_start_work:
 0330 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
-0331 c30a0639 bbit0 mouse_enable_adc ,p_mouse_start_work_next 
+0331 c30a0657 bbit0 mouse_enable_adc ,p_mouse_start_work_next 
 0332 20406166 call enable_adc 
 0333 2040618d call vdd_calculate_by_mode 
 0334 67e148ed store 2 ,mem_mouse_vdd_now_vol 
@@ -1075,7 +1075,7 @@
 033a 20403f1a call mouse_adc_bat_percent_lowpower_out 
 033b 6fe0c4a6 fetch 1 ,mem_adc_power_flag 
 033c c280be5a bbit1 1 ,mouse_app_enter_hibernate 
-033d 20200639 branch p_mouse_start_work_next 
+033d 20200657 branch p_mouse_start_work_next 
 
 p_mouse_bb_event_timer:
 033e 20403edc call mouse_adc_read 
@@ -1374,7 +1374,7 @@
 040b c3838000 rtnbit1 7 
 040c 6fe0c93d fetch 1 ,mem_device_flag 
 040d c080435b bne mode_24g_device ,mouse_disconnect 
-040e 2020063b branch p_mouse_24g_hibernate_set 
+040e 20200659 branch p_mouse_24g_hibernate_set 
 
 p_mouse_store_information_delay_timer:
 040f da6049c4 arg mem_store_information_delay_timer ,regc 
@@ -1551,7 +1551,7 @@
 
 p_mouse_3io6key_dpi_check:
 0486 6fe0c913 fetch 1 ,mem_dpi_button_gpio 
-0487 20400631 call p_mouse_gpio_config_output_low 
+0487 2040064f call p_mouse_gpio_config_output_low 
 0488 6848c913 fetcht 1 ,mem_dpi_button_gpio 
 0489 202041d5 branch mouse_3io6key_check 
 
@@ -1599,11 +1599,11 @@
 
 p_mouse_priority_bb_event:
 04a4 1a627e00 copy regc ,pdata 
-04a5 c01e0641 beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
-04a6 c01c8643 beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
+04a5 c01e065f beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
+04a6 c01c8661 beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
 04a7 c01d04b7 beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
 04a8 c01904ef beq bt_evt_le_start_enc ,p_mouse_le_ll_start_encryt 
-04a9 c00a8645 beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
+04a9 c00a8663 beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
 04aa c00a04fb beq bt_evt_le_connected ,p_mouse_le_bb_event_connected 
 04ab c02004f6 beq bt_evt_le_parse_conn_papa_update_rsp ,p_mouse_le_conn_param_update_rsp_recieved 
 04ac c00104ae beq bt_evt_bb_disconnected ,p_mouse_bb_disconnected 
@@ -1626,7 +1626,7 @@
 04b7 704cb200 jam 0 ,mem_mouse_pair_success 
 04b8 204004b5 call p_mouse_agc_disable_nomal_power 
 04b9 6fe0c8a9 fetch 1 ,mem_24g_attempt_fail_flag 
-04ba 243a063b nbranch p_mouse_24g_hibernate_set ,blank 
+04ba 243a0659 nbranch p_mouse_24g_hibernate_set ,blank 
 04bb 6fe0c88f fetch 1 ,mem_24g_reconn_type 
 04bc c00104df beq fast_conn_and_3_0_addr ,p_mouse_24g_fast_conn_attempt_fail 
 04bd c00084df beq fast_conn_and_receiver ,p_mouse_24g_fast_conn_attempt_fail 
@@ -1958,292 +1958,330 @@
 p_le_parse_att:
 05ac efe18006 ifetch 3 ,contr 
 05ad 67e1c436 store 3 ,mem_le_att_opcode 
-05ae c00505b1 beq attop_read_request ,p_le_parse_att_read_request 
-05af c00905c0 beq attop_write_request ,p_le_parse_att_write_request 
-05b0 20201c7f branch le_parse_att + 2 
+05ae c00505b3 beq attop_read_request ,p_le_parse_att_read_request 
+05af c00905c2 beq attop_write_request ,p_le_parse_att_write_request 
+05b0 c00805d1 beq attop_read_by_group_type_request ,p_le_parse_att_read_by_group_type_request 
+05b1 c00405e0 beq attop_read_by_type_request ,p_le_parse_att_read_by_type_request 
+05b2 20201c7f branch le_parse_att + 2 
 
 p_le_parse_att_read_request:
-05b1 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
-05b2 c31d9d93 bbit0 mouse_enable_le_battery_service_cancel ,le_parse_att_read_request 
-05b3 20401e39 call le_check_encrypt_state 
-05b4 68494437 fetcht 2 ,mem_le_att_handle 
-05b5 6fe0c3c0 fetch 1 ,mem_le_configuration 
-05b6 c28185bb bbit1 bit_ble_read_auth ,p_le_send_att_read_response_check_auth 
+05b3 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
+05b4 c31d9d93 bbit0 mouse_enable_le_battery_service_cancel ,le_parse_att_read_request 
+05b5 20401e39 call le_check_encrypt_state 
+05b6 68494437 fetcht 2 ,mem_le_att_handle 
+05b7 6fe0c3c0 fetch 1 ,mem_le_configuration 
+05b8 c28185bd bbit1 bit_ble_read_auth ,p_le_send_att_read_response_check_auth 
 
 p_le_send_att_read_response:
-05b7 6fe14437 fetch 2 ,mem_le_att_handle 
-05b8 c0181e74 beq 0x30 ,le_send_att_error_response_notfound 
-05b9 68494437 fetcht 2 ,mem_le_att_handle 
-05ba 20201d97 branch le_send_att_read_response 
+05b9 6fe14437 fetch 2 ,mem_le_att_handle 
+05ba c0181e74 beq 0x30 ,le_send_att_error_response_notfound 
+05bb 68494437 fetcht 2 ,mem_le_att_handle 
+05bc 20201d97 branch le_send_att_read_response 
 
 p_le_send_att_read_response_check_auth:
-05bb 6fe143d1 fetch 2 ,mem_le_pairing_handle 
-05bc 98467c00 isub temp ,null 
-05bd 242285b7 nbranch p_le_send_att_read_response ,zero 
-05be 243405b7 nbranch p_le_send_att_read_response ,user 
-05bf 20201dbc branch le_send_att_read_response_error_insufficient_auth 
+05bd 6fe143d1 fetch 2 ,mem_le_pairing_handle 
+05be 98467c00 isub temp ,null 
+05bf 242285b9 nbranch p_le_send_att_read_response ,zero 
+05c0 243405b9 nbranch p_le_send_att_read_response ,user 
+05c1 20201dbc branch le_send_att_read_response_error_insufficient_auth 
 
 p_le_parse_att_write_request:
-05c0 18c22200 copy contr ,rega 
-05c1 6fe143d4 fetch 2 ,mem_le_l2cap_size 
-05c2 1fe0a5fd add pdata ,-3 ,regb 
-05c3 204019d1 call le_writeatt_cb 
-05c4 6fe0cad2 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
-05c5 c07f9e1f beq 0xff ,le_send_att_write_response_check_auth 
-05c6 6fe0cad8 fetch 1 ,mem_mouse_le_reconnect_flag 
-05c7 203a1e1f branch le_send_att_write_response_check_auth ,blank 
-05c8 6fe0cb86 fetch 1 ,mem_le_connect_status_flag 
-05c9 c2809e1f bbit1 ll_start_enc_flag ,le_send_att_write_response_check_auth 
-05ca 5800001a setarg 0x001a 
-05cb 68494437 fetcht 2 ,mem_le_att_handle 
-05cc 98467c00 isub temp ,null 
-05cd 24229e1f nbranch le_send_att_write_response_check_auth ,zero 
-05ce 20201dbc branch le_send_att_read_response_error_insufficient_auth 
+05c2 18c22200 copy contr ,rega 
+05c3 6fe143d4 fetch 2 ,mem_le_l2cap_size 
+05c4 1fe0a5fd add pdata ,-3 ,regb 
+05c5 204019d1 call le_writeatt_cb 
+05c6 6fe0cad2 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+05c7 c07f9e1f beq 0xff ,le_send_att_write_response_check_auth 
+05c8 6fe0cad8 fetch 1 ,mem_mouse_le_reconnect_flag 
+05c9 203a1e1f branch le_send_att_write_response_check_auth ,blank 
+05ca 6fe0cb86 fetch 1 ,mem_le_connect_status_flag 
+05cb c2809e1f bbit1 ll_start_enc_flag ,le_send_att_write_response_check_auth 
+05cc 5800001a setarg 0x001a 
+05cd 68494437 fetcht 2 ,mem_le_att_handle 
+05ce 98467c00 isub temp ,null 
+05cf 24229e1f nbranch le_send_att_write_response_check_auth ,zero 
+05d0 20201dbc branch le_send_att_read_response_error_insufficient_auth 
+
+p_le_parse_att_read_by_group_type_request:
+05d1 20401eb0 call le_get_search_handle_start_end_common 
+05d2 18c20400 copy contr ,temp 
+05d3 204005d7 call p_mouse_le_service_change 
+05d4 18420c00 copy ,temp ,contr 
+05d5 20401ebd call le_get_search_att_type 
+05d6 20201ddb branch le_send_att_read_by_group_type_response 
+
+p_mouse_le_service_change:
+05d7 6fe1099e fetch 2 ,mem_le_search_handle_start 
+05d8 1fe67c33 sub pdata ,rom_max_handle ,null 
+05d9 20610000 rtn positive 
+05da 6fe0ce37 fetch 1 ,mem_le_service_change_flag 
+05db 247a0000 nrtn blank 
+05dc 704e3701 jam 1 ,mem_le_service_change_flag 
+05dd 58004ded setarg mem_ui_le_uuid_table_new 
+05de 67e14396 store 2 ,mem_ui_le_uuid_table 
+05df 20600000 rtn 
+
+p_le_parse_att_read_by_type_request:
+05e0 20401eb0 call le_get_search_handle_start_end_common 
+05e1 18c20400 copy contr ,temp 
+05e2 204005e7 call p_mouse_le_uuid_reinit 
+05e3 204005d7 call p_mouse_le_service_change 
+05e4 18420c00 copy ,temp ,contr 
+05e5 20401ebd call le_get_search_att_type 
+05e6 20201d18 branch le_send_att_read_by_type_response 
+
+p_mouse_le_uuid_reinit:
+05e7 6fe0ce37 fetch 1 ,mem_le_service_change_flag 
+05e8 207a0000 rtn blank 
+05e9 704e3700 jam 0 ,mem_le_service_change_flag 
+05ea 58009732 setarg mouse_ble_att_list_addr 
+05eb 67e14396 store 2 ,mem_ui_le_uuid_table 
+05ec 20600000 rtn 
 
 p_mouse_motion:
-05cf 78547c00 disable user 
-05d0 58000000 setarg 0 
-05d1 67e348d5 store 6 ,mem_mouse_x 
-05d2 204005e2 call p_mouse_check_sensor_data 
-05d3 58000089 setarg 0x0089 
-05d4 20405d5e call twspi_write 
-05d5 20400494 call p_mouse_seting_sensor_type 
-05d6 20403fbe call mouse_zwheel 
-05d7 20403fc3 call mouse_t_zwheel 
-05d8 204005fb call p_mouse_key 
-05d9 6fe0c8d4 fetch 1 ,mem_mouse_key 
-05da 1fe17e1f and_into 0x1f ,pdata 
-05db 67e0c8d4 store 1 ,mem_mouse_key 
-05dc 24344766 nbranch mouse_drawing_optima_init ,user 
-05dd 704de101 jam 1 ,mem_24g_rf_data_flag 
-05de 204005f1 call p_mouse_drawing_optima 
-05df 20204584 branch mouse_no_data_timer_init 
+05ed 78547c00 disable user 
+05ee 58000000 setarg 0 
+05ef 67e348d5 store 6 ,mem_mouse_x 
+05f0 20400600 call p_mouse_check_sensor_data 
+05f1 58000089 setarg 0x0089 
+05f2 20405d5e call twspi_write 
+05f3 20400494 call p_mouse_seting_sensor_type 
+05f4 20403fbe call mouse_zwheel 
+05f5 20403fc3 call mouse_t_zwheel 
+05f6 20400619 call p_mouse_key 
+05f7 6fe0c8d4 fetch 1 ,mem_mouse_key 
+05f8 1fe17e1f and_into 0x1f ,pdata 
+05f9 67e0c8d4 store 1 ,mem_mouse_key 
+05fa 24344766 nbranch mouse_drawing_optima_init ,user 
+05fb 704de101 jam 1 ,mem_24g_rf_data_flag 
+05fc 2040060f call p_mouse_drawing_optima 
+05fd 20204584 branch mouse_no_data_timer_init 
 
 p_mouse_drawing_optima_init:
-05e0 704de100 jam 0 ,mem_24g_rf_data_flag 
-05e1 20204766 branch mouse_drawing_optima_init 
+05fe 704de100 jam 0 ,mem_24g_rf_data_flag 
+05ff 20204766 branch mouse_drawing_optima_init 
 
 p_mouse_check_sensor_data:
-05e2 6fe0c4ae fetch 1 ,mem_spi_write_flash_sm 
-05e3 c1800000 rtnne flash_sm_no_buys 
-05e4 6fe0c92c fetch 1 ,mem_config_sensor_type 
-05e5 c00585e7 beq ka8g2 ,p_mouse_ka8g2_sensor_motion 
-05e6 20204283 branch mouse_check_sensor_data + 3 
+0600 6fe0c4ae fetch 1 ,mem_spi_write_flash_sm 
+0601 c1800000 rtnne flash_sm_no_buys 
+0602 6fe0c92c fetch 1 ,mem_config_sensor_type 
+0603 c0058605 beq ka8g2 ,p_mouse_ka8g2_sensor_motion 
+0604 20204283 branch mouse_check_sensor_data + 3 
 
 p_mouse_ka8g2_sensor_motion:
-05e7 20404304 call mouse_clear_sensor_data 
-05e8 6fe0c915 fetch 1 ,mem_sensor_motion_gpio 
-05e9 c07f85ed beq gpio_disable ,p_mouse_ka8g2_sensor_motion_1 
-05ea 6848c915 fetcht 1 ,mem_sensor_motion_gpio 
-05eb 204060fd call gpio_get_bit 
-05ec 24608000 nrtn true 
+0605 20404304 call mouse_clear_sensor_data 
+0606 6fe0c915 fetch 1 ,mem_sensor_motion_gpio 
+0607 c07f860b beq gpio_disable ,p_mouse_ka8g2_sensor_motion_1 
+0608 6848c915 fetcht 1 ,mem_sensor_motion_gpio 
+0609 204060fd call gpio_get_bit 
+060a 24608000 nrtn true 
 
 p_mouse_ka8g2_sensor_motion_1:
-05ed 58000000 setarg pan_reg_pid_l 
-05ee 20405d65 call twspi_read 
-05ef c0ac41f2 bne pka8g2_id1 ,mouse_twspi_reset 
-05f0 202042b9 branch mouse_p3212_sensor_motion_2 
+060b 58000000 setarg pan_reg_pid_l 
+060c 20405d65 call twspi_read 
+060d c0ac41f2 bne pka8g2_id1 ,mouse_twspi_reset 
+060e 202042b9 branch mouse_p3212_sensor_motion_2 
 
 p_mouse_drawing_optima:
-05f1 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
-05f2 c38c8000 rtnbit1 mouse_enable_24g_500hz 
-05f3 c38d0000 rtnbit1 mouse_enable_24g_1000 
-05f4 c38f0000 rtnbit1 mouse_enable_usb_500 
-05f5 c38f8000 rtnbit1 mouse_enable_usb_1000 
-05f6 6fe0c92c fetch 1 ,mem_config_sensor_type 
-05f7 c1018000 rtneq p3212 
-05f8 c1058000 rtneq ka8g2 
-05f9 20404758 call mouse_drawing_optima 
-05fa 20600000 rtn 
+060f 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
+0610 c38c8000 rtnbit1 mouse_enable_24g_500hz 
+0611 c38d0000 rtnbit1 mouse_enable_24g_1000 
+0612 c38f0000 rtnbit1 mouse_enable_usb_500 
+0613 c38f8000 rtnbit1 mouse_enable_usb_1000 
+0614 6fe0c92c fetch 1 ,mem_config_sensor_type 
+0615 c1018000 rtneq p3212 
+0616 c1058000 rtneq ka8g2 
+0617 20404758 call mouse_drawing_optima 
+0618 20600000 rtn 
 
 p_mouse_key:
-05fb 204005fe call p_mouse_check_key_gpio 
-05fc 2040412d call mouse_ghost_key_check 
-05fd 2020411e branch mouse_key + 2 
+0619 2040061c call p_mouse_check_key_gpio 
+061a 2040412d call mouse_ghost_key_check 
+061b 2020411e branch mouse_key + 2 
 
 p_mouse_check_key_gpio:
-05fe 6fe0cbf2 fetch 1 ,mem_sensor_shutdown_flag 
-05ff 245a4161 ncall mouse_check_key_gpio_once ,blank 
-0600 da200000 arg 0 ,rega 
-0601 20400605 call p_mouse_check_lkey_gpio 
-0602 20400614 call p_mouse_check_bkkey_gpio 
-0603 20400621 call p_mouse_check_fwkey_gpio 
-0604 2020415e branch mouse_check_key_gpio_next 
+061c 6fe0cbf2 fetch 1 ,mem_sensor_shutdown_flag 
+061d 245a4161 ncall mouse_check_key_gpio_once ,blank 
+061e da200000 arg 0 ,rega 
+061f 20400623 call p_mouse_check_lkey_gpio 
+0620 20400632 call p_mouse_check_bkkey_gpio 
+0621 2040063f call p_mouse_check_fwkey_gpio 
+0622 2020415e branch mouse_check_key_gpio_next 
 
 p_mouse_check_lkey_gpio:
-0605 6fe0c91c fetch 1 ,mem_lbutton_gpio 
-0606 2040062e call p_mouse_gpio_config_output_high 
-0607 20404164 call mouse_check_lkey_gpio 
-0608 6848c91c fetcht 1 ,mem_lbutton_gpio 
-0609 20403f96 call mouse_gpio_config_input_pu 
+0623 6fe0c91c fetch 1 ,mem_lbutton_gpio 
+0624 2040064c call p_mouse_gpio_config_output_high 
+0625 20404164 call mouse_check_lkey_gpio 
+0626 6848c91c fetcht 1 ,mem_lbutton_gpio 
+0627 20403f96 call mouse_gpio_config_input_pu 
 
 p_mouse_check_rkey_gpio:
-060a 6fe0c91d fetch 1 ,mem_rbutton_gpio 
-060b 2040062e call p_mouse_gpio_config_output_high 
-060c 2040416a call mouse_check_rkey_gpio 
-060d 6848c91d fetcht 1 ,mem_rbutton_gpio 
-060e 20403f96 call mouse_gpio_config_input_pu 
+0628 6fe0c91d fetch 1 ,mem_rbutton_gpio 
+0629 2040064c call p_mouse_gpio_config_output_high 
+062a 2040416a call mouse_check_rkey_gpio 
+062b 6848c91d fetcht 1 ,mem_rbutton_gpio 
+062c 20403f96 call mouse_gpio_config_input_pu 
 
 p_mouse_check_mkey_gpio:
-060f 6fe0c91e fetch 1 ,mem_mbutton_gpio 
-0610 2040062e call p_mouse_gpio_config_output_high 
-0611 20404170 call mouse_check_mkey_gpio 
-0612 6848c91e fetcht 1 ,mem_mbutton_gpio 
-0613 20203f96 branch mouse_gpio_config_input_pu 
+062d 6fe0c91e fetch 1 ,mem_mbutton_gpio 
+062e 2040064c call p_mouse_gpio_config_output_high 
+062f 20404170 call mouse_check_mkey_gpio 
+0630 6848c91e fetcht 1 ,mem_mbutton_gpio 
+0631 20203f96 branch mouse_gpio_config_input_pu 
 
 p_mouse_check_bkkey_gpio:
-0614 6fe0c911 fetch 1 ,mem_bk_button_gpio 
-0615 c17f8000 rtneq gpio_disable 
-0616 704ba703 jam mouse_bk_key ,mem_mouse_key_temp 
-0617 6fe0cba2 fetch 1 ,mem_mouse_bkkey_press_status 
-0618 1fe22600 copy pdata ,regc 
-0619 6848c911 fetcht 1 ,mem_bk_button_gpio 
-061a 6fe0c914 fetch 1 ,mem_matrix_public_gpio 
-061b c07f861d beq gpio_disable ,p_mouse_3io6key_bk_check 
-061c 2020417e branch mouse_check_bkkey_gpio_next 
+0632 6fe0c911 fetch 1 ,mem_bk_button_gpio 
+0633 c17f8000 rtneq gpio_disable 
+0634 704ba703 jam mouse_bk_key ,mem_mouse_key_temp 
+0635 6fe0cba2 fetch 1 ,mem_mouse_bkkey_press_status 
+0636 1fe22600 copy pdata ,regc 
+0637 6848c911 fetcht 1 ,mem_bk_button_gpio 
+0638 6fe0c914 fetch 1 ,mem_matrix_public_gpio 
+0639 c07f863b beq gpio_disable ,p_mouse_3io6key_bk_check 
+063a 2020417e branch mouse_check_bkkey_gpio_next 
 
 p_mouse_3io6key_bk_check:
-061d 6fe0c911 fetch 1 ,mem_bk_button_gpio 
-061e 20400631 call p_mouse_gpio_config_output_low 
-061f 6848c911 fetcht 1 ,mem_bk_button_gpio 
-0620 2020418b branch mouse_3io6key_bk_check 
+063b 6fe0c911 fetch 1 ,mem_bk_button_gpio 
+063c 2040064f call p_mouse_gpio_config_output_low 
+063d 6848c911 fetcht 1 ,mem_bk_button_gpio 
+063e 2020418b branch mouse_3io6key_bk_check 
 
 p_mouse_check_fwkey_gpio:
-0621 6fe0c912 fetch 1 ,mem_fw_button_gpio 
-0622 c17f8000 rtneq gpio_disable 
-0623 704ba704 jam mouse_fw_key ,mem_mouse_key_temp 
-0624 6fe0cba3 fetch 1 ,mem_mouse_fwkey_press_status 
-0625 1fe22600 copy pdata ,regc 
-0626 6848c912 fetcht 1 ,mem_fw_button_gpio 
-0627 6fe0c914 fetch 1 ,mem_matrix_public_gpio 
-0628 c07f862a beq gpio_disable ,p_mouse_3io6key_fw_check 
-0629 20204197 branch mouse_check_fwkey_gpio_next 
+063f 6fe0c912 fetch 1 ,mem_fw_button_gpio 
+0640 c17f8000 rtneq gpio_disable 
+0641 704ba704 jam mouse_fw_key ,mem_mouse_key_temp 
+0642 6fe0cba3 fetch 1 ,mem_mouse_fwkey_press_status 
+0643 1fe22600 copy pdata ,regc 
+0644 6848c912 fetcht 1 ,mem_fw_button_gpio 
+0645 6fe0c914 fetch 1 ,mem_matrix_public_gpio 
+0646 c07f8648 beq gpio_disable ,p_mouse_3io6key_fw_check 
+0647 20204197 branch mouse_check_fwkey_gpio_next 
 
 p_mouse_3io6key_fw_check:
-062a 6fe0c912 fetch 1 ,mem_fw_button_gpio 
-062b 20400631 call p_mouse_gpio_config_output_low 
-062c 6848c912 fetcht 1 ,mem_fw_button_gpio 
-062d 202041a4 branch mouse_3io6key_fw_check 
+0648 6fe0c912 fetch 1 ,mem_fw_button_gpio 
+0649 2040064f call p_mouse_gpio_config_output_low 
+064a 6848c912 fetcht 1 ,mem_fw_button_gpio 
+064b 202041a4 branch mouse_3io6key_fw_check 
 
 p_mouse_gpio_config_output_high:
-062e c17f8000 rtneq gpio_disable 
-062f d840003f arg gpcfg_output_high ,temp 
-0630 2020612c branch gpio_config_function_int 
+064c c17f8000 rtneq gpio_disable 
+064d d840003f arg gpcfg_output_high ,temp 
+064e 2020612c branch gpio_config_function_int 
 
 p_mouse_gpio_config_output_low:
-0631 c17f8000 rtneq gpio_disable 
-0632 d840003e arg gpcfg_output_low ,temp 
-0633 2020612c branch gpio_config_function_int 
+064f c17f8000 rtneq gpio_disable 
+0650 d840003e arg gpcfg_output_low ,temp 
+0651 2020612c branch gpio_config_function_int 
 
 p_mouse_setting_config:
-0634 20758000 rtn wake 
-0635 704dce00 jam zcode_00 ,mem_zcode_temp_param0 
-0636 2020064c branch p_zcode_entrance 
+0652 20758000 rtn wake 
+0653 704dce00 jam zcode_00 ,mem_zcode_temp_param0 
+0654 2020066a branch p_zcode_entrance 
 
 p_mouse_cb_fuction:
-0637 704dce01 jam zcode_01 ,mem_zcode_temp_param0 
-0638 2020064c branch p_zcode_entrance 
+0655 704dce01 jam zcode_01 ,mem_zcode_temp_param0 
+0656 2020066a branch p_zcode_entrance 
 
 p_mouse_start_work_next:
-0639 704dce10 jam zcode_10 ,mem_zcode_temp_param0 
-063a 2020064c branch p_zcode_entrance 
+0657 704dce10 jam zcode_10 ,mem_zcode_temp_param0 
+0658 2020066a branch p_zcode_entrance 
 
 p_mouse_24g_hibernate_set:
-063b 704dce11 jam zcode_11 ,mem_zcode_temp_param0 
-063c 2020064c branch p_zcode_entrance 
+0659 704dce11 jam zcode_11 ,mem_zcode_temp_param0 
+065a 2020066a branch p_zcode_entrance 
 
 p_mouse_app_enter_hibernate:
-063d 704dce12 jam zcode_12 ,mem_zcode_temp_param0 
-063e 2020064c branch p_zcode_entrance 
+065b 704dce12 jam zcode_12 ,mem_zcode_temp_param0 
+065c 2020066a branch p_zcode_entrance 
 
 p_mouse_setgpio_hibernate:
-063f 704dce20 jam zcode_20 ,mem_zcode_temp_param0 
-0640 2020064c branch p_zcode_entrance 
+065d 704dce20 jam zcode_20 ,mem_zcode_temp_param0 
+065e 2020066a branch p_zcode_entrance 
 
 p_mouse_24g_attempt_success:
-0641 704dce21 jam zcode_21 ,mem_zcode_temp_param0 
-0642 2020064c branch p_zcode_entrance 
+065f 704dce21 jam zcode_21 ,mem_zcode_temp_param0 
+0660 2020066a branch p_zcode_entrance 
 
 p_mouse_24g_pairing_complete:
-0643 704dce22 jam zcode_22 ,mem_zcode_temp_param0 
-0644 2020064c branch p_zcode_entrance 
+0661 704dce22 jam zcode_22 ,mem_zcode_temp_param0 
+0662 2020066a branch p_zcode_entrance 
 
 p_mouse_le_bb_disconnected:
-0645 704dce30 jam zcode_30 ,mem_zcode_temp_param0 
-0646 2020064c branch p_zcode_entrance 
+0663 704dce30 jam zcode_30 ,mem_zcode_temp_param0 
+0664 2020066a branch p_zcode_entrance 
 
 p_mouse_start_discovery:
-0647 704dce31 jam zcode_31 ,mem_zcode_temp_param0 
-0648 2020064c branch p_zcode_entrance 
+0665 704dce31 jam zcode_31 ,mem_zcode_temp_param0 
+0666 2020066a branch p_zcode_entrance 
 
 p_mouse_report_param_set:
-0649 20758000 rtn wake 
-064a 704dce40 jam zcode_40 ,mem_zcode_temp_param0 
-064b 2020064c branch p_zcode_entrance 
+0667 20758000 rtn wake 
+0668 704dce40 jam zcode_40 ,mem_zcode_temp_param0 
+0669 2020066a branch p_zcode_entrance 
 
 p_zcode_entrance:
-064c 6848cdce fetcht 1 ,mem_zcode_temp_param0 
-064d 18518400 rshift4 temp ,temp 
-064e 6fe0cdd3 fetch 1 ,mem_zcode_current_number 
-064f 98467c00 isub temp ,null 
-0650 20228668 branch p_zcode_run ,zero 
-0651 6048cdd3 storet 1 ,mem_zcode_current_number 
-0652 18408401 increase 1 ,temp 
-0653 58000100 setarg zcode_buff_size 
-0654 984f8400 imul32 temp ,temp 
-0655 6fe1cdd4 fetch 3 ,mem_xip_flash_offset 
-0656 98467e00 isub temp ,pdata 
-0657 6849cdd7 fetcht 3 ,mem_flash_start_addr 
-0658 9840fe00 iadd temp ,pdata 
-0659 67e1cdda store 3 ,mem_flash_address 
+066a 6848cdce fetcht 1 ,mem_zcode_temp_param0 
+066b 18518400 rshift4 temp ,temp 
+066c 6fe0cdd3 fetch 1 ,mem_zcode_current_number 
+066d 98467c00 isub temp ,null 
+066e 20228686 branch p_zcode_run ,zero 
+066f 6048cdd3 storet 1 ,mem_zcode_current_number 
+0670 18408401 increase 1 ,temp 
+0671 58000100 setarg zcode_buff_size 
+0672 984f8400 imul32 temp ,temp 
+0673 6fe1cdd4 fetch 3 ,mem_xip_flash_offset 
+0674 98467e00 isub temp ,pdata 
+0675 6849cdd7 fetcht 3 ,mem_flash_start_addr 
+0676 9840fe00 iadd temp ,pdata 
+0677 67e1cdda store 3 ,mem_flash_address 
 
 p_zcode_read_loop:
-065a 2040066a call p_zcode_buff_clear 
-065b 20400676 call p_read_data_from_flash 
-065c 2040066d call p_zcode_data_check 
-065d 2422865a nbranch p_zcode_read_loop ,zero 
-065e 6fe20e00 fetch 4 ,mem_zcode_buff 
-065f 684a4ddd fetcht 4 ,mem_zcode_head 
-0660 98467c00 isub temp ,null 
-0661 2422865a nbranch p_zcode_read_loop ,zero 
-0662 58000e00 setarg mem_zcode_buff 
-0663 67e141a6 store 2 ,mem_patch_ptr 
-0664 7041a840 jam zcode_code_size ,mem_patch_len 
-0665 20405ca3 call load_ucode 
-0666 58000000 setarg 0 
-0667 67e241a6 store 4 ,mem_patch_ptr 
+0678 20400688 call p_zcode_buff_clear 
+0679 20400694 call p_read_data_from_flash 
+067a 2040068b call p_zcode_data_check 
+067b 24228678 nbranch p_zcode_read_loop ,zero 
+067c 6fe20e00 fetch 4 ,mem_zcode_buff 
+067d 684a4ddd fetcht 4 ,mem_zcode_head 
+067e 98467c00 isub temp ,null 
+067f 24228678 nbranch p_zcode_read_loop ,zero 
+0680 58000e00 setarg mem_zcode_buff 
+0681 67e141a6 store 2 ,mem_patch_ptr 
+0682 7041a840 jam zcode_code_size ,mem_patch_len 
+0683 20405ca3 call load_ucode 
+0684 58000000 setarg 0 
+0685 67e241a6 store 4 ,mem_patch_ptr 
 
 p_zcode_run:
-0668 6fe0cdce fetch 1 ,mem_zcode_temp_param0 
-0669 20200001 branch p_zcode 
+0686 6fe0cdce fetch 1 ,mem_zcode_temp_param0 
+0687 20200001 branch p_zcode 
 
 p_zcode_buff_clear:
-066a d8a00e00 arg mem_zcode_buff ,contw 
-066b df200100 arg 256 ,loopcnt 
-066c 20207d9b branch clear_mem 
+0688 d8a00e00 arg mem_zcode_buff ,contw 
+0689 df200100 arg 256 ,loopcnt 
+068a 20207d9b branch clear_mem 
 
 p_zcode_data_check:
-066d d8c00e00 arg mem_zcode_buff ,contr 
-066e da200000 arg 0 ,rega 
-066f df20003f arg 63 ,loopcnt 
+068b d8c00e00 arg mem_zcode_buff ,contr 
+068c da200000 arg 0 ,rega 
+068d df20003f arg 63 ,loopcnt 
 
 p_zcode_data_loop:
-0670 efe20006 ifetch 4 ,contr 
-0671 9a20a200 iadd rega ,rega 
-0672 c2000670 loop p_zcode_data_loop 
-0673 efe20006 ifetch 4 ,contr 
-0674 9a267c00 isub rega ,null 
-0675 20600000 rtn 
+068e efe20006 ifetch 4 ,contr 
+068f 9a20a200 iadd rega ,rega 
+0690 c200068e loop p_zcode_data_loop 
+0691 efe20006 ifetch 4 ,contr 
+0692 9a267c00 isub rega ,null 
+0693 20600000 rtn 
 
 p_read_data_from_flash:
-0676 20405daf call spid_init_flash 
-0677 2040464a call mouse_spid_flash_release_form_powerdown 
-0678 6fe1cdda fetch 3 ,mem_flash_address 
-0679 d8400100 arg zcode_buff_size ,temp 
-067a da200e00 arg mem_zcode_buff ,rega 
-067b 20405dd2 call spid_read_flash 
-067c 20404651 call mouse_spid_flash_powerdown 
-067d 20203fa5 branch mouse_sensor_spi_init 
+0694 20405daf call spid_init_flash 
+0695 2040464a call mouse_spid_flash_release_form_powerdown 
+0696 6fe1cdda fetch 3 ,mem_flash_address 
+0697 d8400100 arg zcode_buff_size ,temp 
+0698 da200e00 arg mem_zcode_buff ,rega 
+0699 20405dd2 call spid_read_flash 
+069a 20404651 call mouse_spid_flash_powerdown 
+069b 20203fa5 branch mouse_sensor_spi_init 
               org 0x800
 
 start:
@@ -42801,7 +42839,7 @@
 30006 20407f52 call clear_wake 
 30007 20404055 call mouse_before_hibernate_wheel_gpio_set 
 30008 6fe0c924 fetch 1 ,mem_mouse_sensor_sdio_gpio 
-30009 2040062e call p_mouse_gpio_config_output_high 
+30009 2040064c call p_mouse_gpio_config_output_high 
 3000a 20400451 call p_mouse_lpm_before_common 
 3000b 20403e72 call mouse_gpio_pu_idle 
 3000c 2040039f call p_mouse_device_led_all_off 
Index: output/ramcode.rom
===================================================================
--- /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/output/ramcode.rom	(revision 5224)
+++ /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/output/ramcode.rom	(working copy)
@@ -70,14 +70,14 @@
 c04581b9
 c05681c8
 c0618330
-c063063d
-c064063f
+c063065b
+c064065d
 c0648451
 c0658371
-c06685cf
+c06685ed
 c067048a
 c0678493
-c06805fe
+c068061c
 c069042c
 c069843c
 c06a84a4
@@ -86,7 +86,7 @@
 c06f016e
 c0700157
 c0708154
-c06c8647
+c06c8665
 c06d04fd
 c06e0425
 2020137e
@@ -455,13 +455,13 @@
 708a3a00
 20201226
 20406e5e
-20400634
-20400649
+20400652
+20400667
 204041e7
 20758000
 20400494
 20404766
-20400637
+20400655
 20400446
 20203c7f
 6fe0c923
@@ -815,7 +815,7 @@
 6fe0c918
 20203f96
 6fe44bbc
-c30a0639
+c30a0657
 20406166
 2040618d
 67e148ed
@@ -827,7 +827,7 @@
 20403f1a
 6fe0c4a6
 c280be5a
-20200639
+20200657
 20403edc
 2040038e
 204022e1
@@ -1036,7 +1036,7 @@
 c3838000
 6fe0c93d
 c080435b
-2020063b
+20200659
 da6049c4
 da400412
 202031fc
@@ -1157,7 +1157,7 @@
 c07f8486
 2020407f
 6fe0c913
-20400631
+2040064f
 6848c913
 202041d5
 204040b2
@@ -1187,11 +1187,11 @@
 704cb301
 20600000
 1a627e00
-c01e0641
-c01c8643
+c01e065f
+c01c8661
 c01d04b7
 c01904ef
-c00a8645
+c00a8663
 c00a04fb
 c02004f6
 c00104ae
@@ -1208,7 +1208,7 @@
 704cb200
 204004b5
 6fe0c8a9
-243a063b
+243a0659
 6fe0c88f
 c00104df
 c00084df
@@ -1452,23 +1452,25 @@
 20201990
 efe18006
 67e1c436
-c00505b1
-c00905c0
+c00505b3
+c00905c2
+c00805d1
+c00405e0
 20201c7f
 6fe44bbc
 c31d9d93
 20401e39
 68494437
 6fe0c3c0
-c28185bb
+c28185bd
 6fe14437
 c0181e74
 68494437
 20201d97
 6fe143d1
 98467c00
-242285b7
-243405b7
+242285b9
+243405b9
 20201dbc
 18c22200
 6fe143d4
@@ -1485,33 +1487,61 @@
 98467c00
 24229e1f
 20201dbc
+20401eb0
+18c20400
+204005d7
+18420c00
+20401ebd
+20201ddb
+6fe1099e
+1fe67c33
+20610000
+6fe0ce37
+247a0000
+704e3701
+58004ded
+67e14396
+20600000
+20401eb0
+18c20400
+204005e7
+204005d7
+18420c00
+20401ebd
+20201d18
+6fe0ce37
+207a0000
+704e3700
+58009732
+67e14396
+20600000
 78547c00
 58000000
 67e348d5
-204005e2
+20400600
 58000089
 20405d5e
 20400494
 20403fbe
 20403fc3
-204005fb
+20400619
 6fe0c8d4
 1fe17e1f
 67e0c8d4
 24344766
 704de101
-204005f1
+2040060f
 20204584
 704de100
 20204766
 6fe0c4ae
 c1800000
 6fe0c92c
-c00585e7
+c0058605
 20204283
 20404304
 6fe0c915
-c07f85ed
+c07f860b
 6848c915
 204060fd
 24608000
@@ -1529,28 +1559,28 @@
 c1058000
 20404758
 20600000
-204005fe
+2040061c
 2040412d
 2020411e
 6fe0cbf2
 245a4161
 da200000
-20400605
-20400614
-20400621
+20400623
+20400632
+2040063f
 2020415e
 6fe0c91c
-2040062e
+2040064c
 20404164
 6848c91c
 20403f96
 6fe0c91d
-2040062e
+2040064c
 2040416a
 6848c91d
 20403f96
 6fe0c91e
-2040062e
+2040064c
 20404170
 6848c91e
 20203f96
@@ -1561,10 +1591,10 @@
 1fe22600
 6848c911
 6fe0c914
-c07f861d
+c07f863b
 2020417e
 6fe0c911
-20400631
+2040064f
 6848c911
 2020418b
 6fe0c912
@@ -1574,10 +1604,10 @@
 1fe22600
 6848c912
 6fe0c914
-c07f862a
+c07f8648
 20204197
 6fe0c912
-20400631
+2040064f
 6848c912
 202041a4
 c17f8000
@@ -1588,33 +1618,33 @@
 2020612c
 20758000
 704dce00
-2020064c
+2020066a
 704dce01
-2020064c
+2020066a
 704dce10
-2020064c
+2020066a
 704dce11
-2020064c
+2020066a
 704dce12
-2020064c
+2020066a
 704dce20
-2020064c
+2020066a
 704dce21
-2020064c
+2020066a
 704dce22
-2020064c
+2020066a
 704dce30
-2020064c
+2020066a
 704dce31
-2020064c
+2020066a
 20758000
 704dce40
-2020064c
+2020066a
 6848cdce
 18518400
 6fe0cdd3
 98467c00
-20228668
+20228686
 6048cdd3
 18408401
 58000100
@@ -1624,14 +1654,14 @@
 6849cdd7
 9840fe00
 67e1cdda
-2040066a
-20400676
-2040066d
-2422865a
+20400688
+20400694
+2040068b
+24228678
 6fe20e00
 684a4ddd
 98467c00
-2422865a
+24228678
 58000e00
 67e141a6
 7041a840
@@ -1648,7 +1678,7 @@
 df20003f
 efe20006
 9a20a200
-c2000670
+c200068e
 efe20006
 9a267c00
 20600000
Index: output/romcode.rom
===================================================================
--- /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/output/romcode.rom	(revision 5224)
+++ /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/output/romcode.rom	(working copy)
@@ -30673,7 +30673,7 @@
 20407f52
 20404055
 6fe0c924
-2040062e
+2040064c
 20400451
 20403e72
 2040039f
@@ -30776,4 +30776,4 @@
 67e1cc16
 202026e8
 20600000
-000035f4
+00007c7a
Index: program/patch.prog
===================================================================
--- /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/program/patch.prog	(revision 5228)
+++ /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/program/patch.prog	(working copy)
@@ -2144,7 +2144,9 @@
 	ifetch 3,contr
 	store 3,mem_le_att_opcode
 	beq ATTOP_READ_REQUEST,p_le_parse_att_read_request
-	beq ATTOP_WRITE_REQUEST,p_le_parse_att_write_request	
+	beq ATTOP_WRITE_REQUEST,p_le_parse_att_write_request
+	beq ATTOP_READ_BY_GROUP_TYPE_REQUEST,p_le_parse_att_read_by_group_type_request
+	beq ATTOP_READ_BY_TYPE_REQUEST,p_le_parse_att_read_by_type_request
 	branch le_parse_att+2
 
 p_le_parse_att_read_request:
@@ -2184,6 +2186,46 @@
 	isub temp,null
 	nbranch le_send_att_write_response_check_auth,zero
 	branch le_send_att_read_response_error_insufficient_auth
+
+//add ff00 service, tx uuid=ff01 rx uuid=ff02
+p_le_parse_att_read_by_group_type_request:
+	call le_get_search_handle_start_end_common
+	copy contr,temp
+	call p_mouse_le_service_change
+	copy,temp,contr
+ 	call le_get_search_att_type
+	branch le_send_att_read_by_group_type_response
+
+p_mouse_le_service_change:
+	fetch 2,mem_le_search_handle_start
+	sub pdata,ROM_MAX_HANDLE,null
+	rtn positive
+	fetch 1,mem_le_service_change_flag
+	nrtn blank
+	jam 1,mem_le_service_change_flag
+	setarg mem_ui_le_uuid_table_new
+	store 2,mem_ui_le_uuid_table
+	rtn
+
+//ask service detail
+p_le_parse_att_read_by_type_request:
+	call le_get_search_handle_start_end_common
+	copy contr,temp
+	call p_mouse_le_uuid_reinit
+	call p_mouse_le_service_change
+	copy,temp,contr
+	call le_get_search_att_type
+	branch le_send_att_read_by_type_response
+
+//service reinit rom service
+p_mouse_le_uuid_reinit:
+	fetch 1,mem_le_service_change_flag
+	rtn blank
+	jam 0,mem_le_service_change_flag
+	setarg MOUSE_BLE_ATT_LIST_ADDR
+	store 2,mem_ui_le_uuid_table
+	rtn
+
 endif
 
 
Index: sched/mouse.dat
===================================================================
--- /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/sched/mouse.dat	(revision 5224)
+++ /YC1308AF/branch/mouse/USB_4Mode_Project/RongYuan_Project/mouse_public_3mode_usb/sched/mouse.dat	(working copy)
@@ -84,7 +84,7 @@
 #bit5 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
 #bit6 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
 #bit7 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
-01
+82
 
 #mouse flag byte8
 #bit0 MOUSE_ENABLE_SMOOTHER
@@ -93,7 +93,7 @@
 #bit3 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
 #bit4 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
 #bit5 MOUSE_ENABLE_DOUBLE_DPI_KEY
-1b
+1f
 
 
 mem_mouse_discovery_timeout:08 07	#3min
@@ -185,7 +185,7 @@
 
 #bit0:mouse_key_l    bit1:mouse_key_r  bit2:mouse_key_m
 mem_mouse_commbination_key_bt:07
-mem_mouse_commbination_key_24g:05
+mem_mouse_commbination_key_24g:03
 
 mem_store_information_delay_timer_init:01
 
@@ -211,7 +211,7 @@
 mem_lpm_mult_init:20
 
 mem_app_connection_options:06
-mem_lap:15 26 11 52 08 53
+mem_lap:95 36 21 52 08 53
 mem_local_name_length:
 'BT3.0 Mouse
 mem_sniff_param_interval:
@@ -552,3 +552,34 @@
 mem_mouse_vdd_switch_gnd_full_vol:35 00
 mem_mouse_vdd_switch_gnd_shutdown_voltage:21 00
 mem_mouse_vdd_switch_gnd_low_voltage:25 00
+
+mem_le_protocol_tx_handle:36 00
+mem_le_protocol_rx_handle:39 00
+
+mem_ui_le_uuid_table_new:
+#00 02--length  0x2800--primary service  02--len  ff00--uuid
+34 00 02 00 28 02 00 ff
+#TX--Notify
+#0x2803--Characteristic  01--len  16--notify
+35 00 02 03 28 01 10
+
+#0xff01--tx-uuid  01--data-len  
+36 00 02 01 ff 01 00
+
+#00 02--length  0x2902--Client Characteristic Configuration
+37 00 02 02 29 02 00 00
+
+#RX
+#0x2803--Characteristic  01--len  12--read&write without resp
+38 00 02 03 28 01 0c
+
+#0xff01--uuid  00--uuid type
+39 00 02 02 ff 01 00
+
+#00 02--length  0x2902--Client Characteristic Configuration
+3a 00 02 02 29 02 00 00
+#End List
+00 00              
+
+
+
