diff --git a/ReadMe.txt b/ReadMe.txt index a52fd02..e47737d 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -118,5 +118,7 @@ 2023.11.21 分析工具修改上下限时自动重绘 添加huffman压缩编码,已完成编码,未验证 +2023.12.9 + 删除huffman相关,分析工具不过滤异常数据 diff --git a/analysis/scheme_data.py b/analysis/scheme_data.py index ff04068..81ed277 100644 --- a/analysis/scheme_data.py +++ b/analysis/scheme_data.py @@ -258,10 +258,11 @@ class sch_data(object): cur.execute(cmd,(self.date_start,self.date_end,scheme_id)) check_data=cur.fetchall() for row in check_data: - if(row[3]==0): - s=row[5].split(',') - for i in range(len(s)): - data_list[i].append(int(s[i])) + # 这里过滤检测异常的结果 + # if(row[3]==0): + s=row[5].split(',') + for i in range(len(s)): + data_list[i].append(int(s[i])) self._check_data=check_data self._titles=title return title,data_list,len(check_data) diff --git a/coder_2ch/prottcp.py b/coder_2ch/prottcp.py index a379fd5..3178bfa 100644 --- a/coder_2ch/prottcp.py +++ b/coder_2ch/prottcp.py @@ -469,18 +469,18 @@ class protu(QObject): -# if __name__ == "__main__": -# u=protu() +if __name__ == "__main__": + u=protu() # u.init("utcp:7777") # u.send_file(0xee,"file/JQ_JCXB_V54.bin") # u.send_file(0xed,"../Objects/checker_gen1_app_20230602.bin") # 设置电阻 矫正值 # u.cmd=0x41 - # data=bytearray([1,0,0x00,2,0,0x00,3,0,0x00,4,0,0x00,5,0,0x00,6,0,0x00,7,0,0x00,8,0,0x00,9,0,0x00,10,0,0x00,11,0,0x00,12,0,0x00,13,0,0x00,14,0,0x00,15,0,0x00,16,0,0x00,17,0,0x00,18,0,0x00,19,0,0x00,20,0,0x00]) + # data=bytearray([1,100,0x00,2,0,0x00,3,0,0x00,4,0,0x00,5,0,0x00,6,0,0x00,7,0,0x00,8,0,0x00,9,0,0x00,10,0,0x00,11,0,0x00,12,0,0x00,13,0,0x00,14,0,0x00,15,0,0x00,16,0,0x00,17,0,0x00,18,0,0x00,19,0,0x00,20,0,0x00]) # 测量电阻 - # u.cmd=0x42 - # data=bytearray([0]) + u.cmd=0x42 + data=bytearray([5]) # 设置硬件版本号 # u.cmd=0x43 # data=bytearray([1,50,0x00,2,51,0x00,3,52,0x00,4,53,0x00,5,54,0x00,6,55,0x00,7,56,0x00,8,57,0x00,9,58,0x00,10,59,0x00,11,60,0x00,12,61,0x00,13,62,0x00,14,63,0x00,15,64,0x00,16,65,0x00,17,66,0x00,18,67,0x00,19,68,0x00,20,69,0x00]) @@ -490,7 +490,7 @@ class protu(QObject): # data=bytearray([0x02]) # 上升 # data=bytearray([0x03]) # 下降 - # print(u.encode(data).hex(' ')) + print(u.encode(data).hex(' ')) # with open("file/EX_Coder_Test_2023-07-6.json","rb") as f: # json_obj=json.loads(f.read()) # d=scheme_to_byte(json_obj) @@ -513,147 +513,3 @@ class protu(QObject): # 59 6D 03 00 31 00 00 31 CF - - - -def sort_table(index_table): - for i in range(len(index_table)): - item=index_table[i] - for j in range(i+1,len(index_table)): - if(index_table[j][1]>item[1]): - index_table[i]=index_table[j] - index_table[j]=item - item=index_table[i] - - -def exp(num:int,e:int): - res=1 - for i in range(e): - res*=num - return res - -def clac_zl_table(num:int): - count=1 - while(num>exp(2,count)): - count+=1 - # 使用短编码的个数 - diff=exp(2,count)-num - zl_table=[] - for i in range(diff): - zl_table.append(i) - # 使用长编码的个数 - diff2=num-exp(2,count-1) - for i in range(diff,diff+diff2): - zl_table.append(i*2) - zl_table.append(i*2+1) - print(zl_table) - return zl_table,count,diff - -def huffman(data:bytearray): - count_table=bytearray(256) - for i in data: - count_table[int(i)]+=1 - index_table=[] - for i in range(len(count_table)): - if(int(count_table[i])>0): - index_table.append((i,count_table[i])) - # print(index_table) - sort_table(index_table) - print("index_table",index_table) - num=len(index_table) - # clac_zl_table(num) - ret=bytearray() - for i in index_table: - ret.append(i[0]) - ret.append(i[1]) - return index_table - - - -# 获取树的值 -def calc_sum_of_tree(tree:list): - sum=0 - if(len(tree)==2): - sum=calc_sum_of_tree(tree[0])+calc_sum_of_tree(tree[1]) - elif(len(tree)==1): - sum=tree[0][1] - return sum - -# 获取树的深度 -def calc_deep_of_tree(tree:list): - deep=1 - if(len(tree)==2): - sum1=calc_deep_of_tree(tree[0]) - sum2=calc_deep_of_tree(tree[1]) - if(sum1>sum2): - deep+=sum1 - else: - deep+=sum2 - elif(len(tree)==1): - deep=1 - return deep - -# 在树中找到指定字符的编码 -def calc_code_of_char(tree:list,code:int): - - - -# 根据index_table生成huffman树 -def creat_huffman_tree(index_table:bytearray): - index_list=[] - for i in range(len(index_table)//2): - index_list.append(index_table[i*2:i*2+2]) - print("index_list",index_list) - tree=[index_list[-1]] - index_list=index_list[:-1] - while len(index_list)>0: - sub=[index_list[-1]] - index_list=index_list[:-1] - # 大在左,小在右 - if(calc_sum_of_tree(sub)>calc_sum_of_tree(tree)): - tree=[sub,tree] - else: - tree=[tree,sub] - print("tree deep:",calc_deep_of_tree(tree)) - print(tree) - return tree - -# 根据值获取其序号 -def value_to_index(index_table:list,value): - for i in range(len(index_table)): - if(value==index_table[i]): - return i - return -1 - - -# 生成指定位数的mask -def calc_mask(num:int): - ret=0 - for i in range(num): - ret<<=1 - ret|=1 - return ret - - - - - -def huffman_encode(data:bytearray): - ret=bytearray(1024) - index=0 - index_table=huffman(data) - # print("index_table",index_table.hex(' ')) - print("index_table",index_table) - creat_huffman_tree(index_table) - -def huffman_decode(data:bytearray): - zl_table,count,diff=clac_zl_table(data[0]) - index_table=data[1:data[0]+1] - data=data[data[0]+1:] - index_all=len(data[1:])*8-data[0] - ret=bytearray() - index=0 - - -if __name__ == "__main__": - huffman_encode(b"1234567891234233434237873678378263738") \ No newline at end of file