Index: do.bat
===================================================================
--- /1121s/branch/mouse/YJX_Project/mouse_public_yjx/do.bat	(revision 2933)
+++ /1121s/branch/mouse/YJX_Project/mouse_public_yjx/do.bat	(working copy)
@@ -93,9 +93,9 @@
 echo create auth rom
 perl ../util/mergepatch.pl mouse_ble_att_list usb_kbdata_vendor_define usb_kbdata usb_msdata usb_devicedata usb_confdata ble_shutter_gatt_list ble_shutter_key_value_list ble_car_att_list sha256 
 perl ../util/romcrc.pl romcode.rom
-perl  ../util/mergepatch.pl otp
-
-
+perl ../util/mergepatch.pl otp
+perl ../util/otpcheck.pl 
+echo.
 if "%device_option%" equ "mouse" (
 cd ..\output
 copy eeprom.dat ..\util\eeprom.dat
Index: output/otp.dat
===================================================================
--- /1121s/branch/mouse/YJX_Project/mouse_public_yjx/output/otp.dat	(revision 2933)
+++ /1121s/branch/mouse/YJX_Project/mouse_public_yjx/output/otp.dat	(working copy)
@@ -1130,7 +1130,7 @@
 3c
 1d
 4e
-35
+05
 c4
 eb
 66
@@ -5369,8 +5369,8 @@
 b0
 27
 88
-36
-ab
+a7
+12
 8c
 42
 aa
@@ -5455,8 +5455,8 @@
 00
 02
 00
-02
-1f
+01
+1b
 aa
 55
 1e
@@ -6165,7 +6165,7 @@
 00
 3e
 46
-a2
+a0
 aa
 55
 01
@@ -6719,8 +6719,8 @@
 aa
 aa
 55
-ce
+c7
 6d
-a7
 e4
+75
 20
Index: output/program.lis
===================================================================
--- /1121s/branch/mouse/YJX_Project/mouse_public_yjx/output/program.lis	(revision 2933)
+++ /1121s/branch/mouse/YJX_Project/mouse_public_yjx/output/program.lis	(working copy)
@@ -331,7 +331,7 @@
 
 p_set_tx_power_f40db:
 0112 708a1417 jam 0x17 ,0x8a14 
-0113 58250000 setarg 0x250000 
+0113 58150000 setarg 0x150000 
 0114 67f18a60 store 3 ,0x8a60 
 0115 2020221a branch set_tx_power_8a63_28 
 
Index: output/sched.rom
===================================================================
--- /1121s/branch/mouse/YJX_Project/mouse_public_yjx/output/sched.rom	(revision 2933)
+++ /1121s/branch/mouse/YJX_Project/mouse_public_yjx/output/sched.rom	(working copy)
@@ -139,7 +139,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
-02
+01
 
 #mouse flag byte8
 #bit0 MOUSE_ENABLE_SMOOTHER
@@ -150,7 +150,7 @@
 #bit5 MOUSE_ENABLE_24G_2M_PHY
 #bit6 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING
 #bit7 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN
-1f
+1b
 
 mem_mouse_param_config:
 06 #mem_lbutton_gpio
@@ -351,7 +351,7 @@
 
 #rf
 mem_tx_power:03	#00--0db 01--3db  02--5db  03--f3db  04--f5db
-mem_mouse_24g_pair_tx_power:a2 #94: -20dBm  9e: -30dBm  9f: -35dBm a0: -40dBm 
+mem_mouse_24g_pair_tx_power:a0 #94: -20dBm  9e: -30dBm  9f: -35dBm a0: -40dBm
 mem_rssi_buff_index:07
 mem_rssi_signal_buf_ptr:mem_mouse_rssi_signal_buf
 mem_rssi_dis_min_24g_init:85
Index: program/patch.prog
===================================================================
--- /1121s/branch/mouse/YJX_Project/mouse_public_yjx/program/patch.prog	(revision 2933)
+++ /1121s/branch/mouse/YJX_Project/mouse_public_yjx/program/patch.prog	(working copy)
@@ -432,9 +432,15 @@
 	rtn
 */
 
+//p_set_tx_power_f40db:
+//	jam 0x17,0x8a14 
+//	setarg 0x250000
+//	store 3,0x8a60
+//	branch set_tx_power_8a63_28
+
 p_set_tx_power_f40db:
-	jam 0x17,0x8a14 
-	setarg 0x250000
+	jam 0x17,0x8a14
+	setarg 0x150000
 	store 3,0x8a60
 	branch set_tx_power_8a63_28
 
Index: sched/mouse.dat
===================================================================
--- /1121s/branch/mouse/YJX_Project/mouse_public_yjx/sched/mouse.dat	(revision 2933)
+++ /1121s/branch/mouse/YJX_Project/mouse_public_yjx/sched/mouse.dat	(working copy)
@@ -72,7 +72,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
-02
+01
 
 #mouse flag byte8
 #bit0 MOUSE_ENABLE_SMOOTHER
@@ -83,7 +83,7 @@
 #bit5 MOUSE_ENABLE_24G_2M_PHY
 #bit6 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING
 #bit7 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN
-1f
+1b
 
 mem_mouse_param_config:
 06 #mem_lbutton_gpio
@@ -284,7 +284,7 @@
 
 #rf
 mem_tx_power:03	#00--0db 01--3db  02--5db  03--f3db  04--f5db
-mem_mouse_24g_pair_tx_power:a2 #94: -20dBm  9e: -30dBm  9f: -35dBm a0: -40dBm 
+mem_mouse_24g_pair_tx_power:a0 #94: -20dBm  9e: -30dBm  9f: -35dBm a0: -40dBm
 mem_rssi_buff_index:07
 mem_rssi_signal_buf_ptr:mem_mouse_rssi_signal_buf
 mem_rssi_dis_min_24g_init:85
Index: util/otpcheck.pl
===================================================================
--- /1121s/branch/mouse/YJX_Project/mouse_public_yjx/util/otpcheck.pl	(nonexistent)
+++ /1121s/branch/mouse/YJX_Project/mouse_public_yjx/util/otpcheck.pl	(working copy)
@@ -0,0 +1,76 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use File::Spec;  
+# 获取当前脚本的目录路径
+my $current_dir = File::Spec->rel2abs('.');
+my $parent_dir = File::Spec->catdir($current_dir, '..');  # 获取上一级目录
+
+# 指定要搜索的文件名
+my $filename = File::Spec->catfile($parent_dir, 'output', 'otp.dat');
+# 打开文件进行读取
+open(my $fh, '<',$filename) or die "无法打开文件 '$filename':$!";
+
+# 读取整个文件到数组中
+my @file_content = <$fh>;
+chomp @file_content;  # 移除每行的换行符
+
+# 关闭文件句柄
+close($fh);
+
+# 初始化变量
+my $found = 0;
+my $otp_end_address = 0;
+# 循环遍历文件内容，每次移动一个字节
+for my $start (0 ..$#file_content - 3) {
+    # 提取从当前起始位置开始的四个字节
+    my $chunk = join('', @file_content[$start .. $start + 3]);
+    
+    # 检查这四个字节是否匹配指定的字符串
+    if ($chunk eq '55aaaa55') {
+        $otp_end_address = $start +9;
+        # print "After adding 9 to the start position: $start\n";
+        $found = 1;
+    }
+}
+
+# 如果找到了 "55aaaa55"，则继续处理 sched.rom 文件
+if ($found) {
+    my $sched_filename = File::Spec->catfile($parent_dir, 'output', 'sched.rom');
+    # 打开文件进行读取
+    open(my $sched_fh, '<',$sched_filename) or die "无法打开文件 '$sched_filename'$!";
+    # 读取整个文件到字符串中
+    my $sched_content = do { local$/; <$sched_fh> };
+    chomp $sched_content;  # 移除字符串末尾的换行符
+    # print "sched_content: $sched_content\n";
+    # 关闭文件句柄
+    close($sched_fh);
+    # 在 sched_content 中查找 "mem_otp_offset_dpi:"
+    my $sched_position = index($sched_content, 'mem_otp_offset_dpi:');
+    # 如果找到了 "mem_otp_offset_dpi:"
+    if ($sched_position != -1) {
+        # 获取 "mem_otp_offset_dpi:" 后面的两个字节
+        my $five_bytes_with_spaces = substr($sched_content, $sched_position + length("mem_otp_offset_dpi:"), 5);
+        $five_bytes_with_spaces =~ s/ //g;  # 移除空格
+        my $five_bytes =$five_bytes_with_spaces;
+        # 字节颠倒
+        my $reversed_bytes = substr($five_bytes, 2, 2) . substr($five_bytes, 0, 2);
+        my $decimal_value = hex($reversed_bytes);
+        # 打印找到的字符串位置信息以及后面跟随的两个字节
+        print "Original otp dpi store start little-endian bytes: $five_bytes\n";
+        print "Reversed (big-endian) bytes:  $decimal_value\n";
+        print "otp end bytes:  $otp_end_address\n";
+        if($decimal_value>$otp_end_address)
+        {
+            print"otp check done";
+        }
+        else
+        {
+            die "系统错误：在文件 '$sched_filename' 中找不到字符串 'mem_otp_offset_dpi:'\n";
+        }
+    } else {
+        print "String 'mem_otp_offset_dpi:' not found in file '$sched_filename'.\n";
+    }
+}
+
+
