From 07f85682cac9806128bb723437dd912535ffb1f0 Mon Sep 17 00:00:00 2001 From: chenyue Date: Wed, 8 Jul 2026 19:00:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3x,y=E9=A1=BA=E5=BA=8F?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sl2-100/pd.py | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/sl2-100/pd.py b/sl2-100/pd.py index 94d6c6a..cb48b62 100644 --- a/sl2-100/pd.py +++ b/sl2-100/pd.py @@ -125,14 +125,19 @@ class Decoder(srd.Decoder): self.put(ss, es, self.out_ann,[1, [str(bit)]]) #下面处理每个字段 if self.state == 'HEADER': - self.header_str += str(bit) - self.head_cnt = self.head_cnt+1 - if self.head_cnt == 6: - self.put(self.header_first, es, self.out_ann,[2, ['HEADER_x:' + self.header_str]]) - self.state = 'xpos' - self.xpos_first = es - self.xpos_cnt = 0 #当前坐标 位数归零,准备累积 - self.data = 0 #当前坐标值归零,准备开始累积 + if(self.head_cnt == 0 and bit == 0):# 如果是第一个数据位且为0,则认为是y坐标数据 + self.header2_str += str(bit) + self.head2_cnt = self.head2_cnt+1 + self.state = 'HEADER3' + else: + self.header_str += str(bit) + self.head_cnt = self.head_cnt+1 + if self.head_cnt == 6: + self.put(self.header_first, es, self.out_ann,[2, ['HEADER_x:' + self.header_str]]) + self.state = 'xpos' + self.xpos_first = es + self.xpos_cnt = 0 #当前坐标 位数归零,准备累积 + self.data = 0 #当前坐标值归零,准备开始累积 elif self.state == 'xpos': if self.xpos_cnt == 19: self.data = ((not bit) << self.xpos_cnt) | self.data @@ -165,6 +170,15 @@ class Decoder(srd.Decoder): self.ypos_first = es self.ypos_cnt = 0 #当前坐标 位数归零,准备累积 self.data = 0 #当前坐标值归零,准备开始累积 + elif self.state == 'HEADER3': + self.header2_str += str(bit) + self.head2_cnt = self.head2_cnt+1 + if self.head2_cnt == 6: + self.put(self.header2_first, es, self.out_ann,[6, ['HEADER_y:' + self.header2_str]]) + self.state = 'ypos' + self.ypos_first = es + self.ypos_cnt = 0 #当前坐标 位数归零,准备累积 + self.data = 0 #当前坐标值归零,准备开始累积 elif self.state == 'ypos': if self.ypos_cnt == 19: self.data = ((not bit) << self.ypos_cnt) | self.data