浏览代码

纠正发送的实际数据,

xuxinyi 1 月之前
父节点
当前提交
1ba1009d8f
共有 2 个文件被更改,包括 25 次插入11 次删除
  1. 14 5
      .idea/workspace.xml
  2. 11 6
      main.py

+ 14 - 5
.idea/workspace.xml

@@ -4,7 +4,7 @@
     <option name="autoReloadType" value="SELECTIVE" />
   </component>
   <component name="ChangeListManager">
-    <list default="true" id="1ac4e985-6885-47ec-89fe-c34ac50172a1" name="更改" comment="命令版可以修改。">
+    <list default="true" id="1ac4e985-6885-47ec-89fe-c34ac50172a1" name="更改" comment="添加文件导入。设备地址,命令模板">
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
     </list>
@@ -56,7 +56,7 @@
       <option name="presentableId" value="Default" />
       <updated>1760066680854</updated>
       <workItem from="1760066681868" duration="6034000" />
-      <workItem from="1760079175256" duration="328000" />
+      <workItem from="1760079175256" duration="1527000" />
     </task>
     <task id="LOCAL-00001" summary="first commit">
       <option name="closed" value="true" />
@@ -98,7 +98,15 @@
       <option name="project" value="LOCAL" />
       <updated>1760079064396</updated>
     </task>
-    <option name="localTasksCounter" value="6" />
+    <task id="LOCAL-00006" summary="添加文件导入。设备地址,命令模板">
+      <option name="closed" value="true" />
+      <created>1760079690628</created>
+      <option name="number" value="00006" />
+      <option name="presentableId" value="LOCAL-00006" />
+      <option name="project" value="LOCAL" />
+      <updated>1760079690628</updated>
+    </task>
+    <option name="localTasksCounter" value="7" />
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">
@@ -121,9 +129,10 @@
     <MESSAGE value="实现手动发送命令的串口助手" />
     <MESSAGE value="生成exe命令" />
     <MESSAGE value="命令版可以修改。" />
-    <option name="LAST_COMMIT_MESSAGE" value="命令版可以修改。" />
+    <MESSAGE value="添加文件导入。设备地址,命令模板" />
+    <option name="LAST_COMMIT_MESSAGE" value="添加文件导入。设备地址,命令模板" />
   </component>
   <component name="com.intellij.coverage.CoverageDataManagerImpl">
-    <SUITE FILE_PATH="coverage/bl_lora_manager$main.coverage" NAME="main 覆盖结果" MODIFIED="1760079595200" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
+    <SUITE FILE_PATH="coverage/bl_lora_manager$main.coverage" NAME="main 覆盖结果" MODIFIED="1760080791693" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
   </component>
 </project>

+ 11 - 6
main.py

@@ -227,20 +227,25 @@ class SerialAssistant:
             return
 
         try:
-            cmd_template = self.combo_frame.get().replace(" ", "")
+            template = self.combo_frame.get().strip().replace(" ", "")
             src_addr = self.combo_src.get().replace(" ", "")
 
             if len(src_addr) != 4:
                 raise ValueError("源地址长度非法")
+            if len(template) < 2:
+                raise ValueError("模板太短,至少需要命令码一个字节")
 
-            # 组帧: 55 BB [命令模板] [源地址] [保留3B] FF EE
+            # 命令码是模板的第一个字节
+            cmd_code = template[:2]
+            rest_template = template[2:]  # 剩余模板内容
+
+            # 组帧: 55 BB [命令码] [源地址] [剩余模板]
             frame = bytearray()
             frame.extend(b'\x55\xBB')
-            frame.extend(bytes.fromhex(cmd_template))
+            frame.extend(bytes.fromhex(cmd_code))
             frame.extend(bytes.fromhex(src_addr))
-            if len(cmd_template) < 4:
-                frame.extend(b'\x00\x00\x00')
-            frame.extend(b'\xFF\xEE')
+            if rest_template:
+                frame.extend(bytes.fromhex(rest_template))
 
             self.ser.write(frame)
             self.text_rx.insert(tk.END, f"[发送] {' '.join(f'{b:02X}' for b in frame)}\n")