检测后赋码如果返回200也保存赋码结果
添加电机下降按钮 每次赋码结果采用不同的颜色
This commit is contained in:
@@ -86,4 +86,8 @@
|
|||||||
分析工具添加导出数据和分析结果html文件
|
分析工具添加导出数据和分析结果html文件
|
||||||
2023.10.22
|
2023.10.22
|
||||||
添加毛刺过滤算法,去除基线漂移算法
|
添加毛刺过滤算法,去除基线漂移算法
|
||||||
|
2023.10.25
|
||||||
|
检测后赋码如果返回200也保存赋码结果
|
||||||
|
添加电机下降按钮
|
||||||
|
每次赋码结果采用不同的颜色
|
||||||
|
|
||||||
|
@@ -210,4 +210,14 @@ def show_xy(xy_list:list):
|
|||||||
ax.legend()
|
ax.legend()
|
||||||
index+=1
|
index+=1
|
||||||
plt.show()
|
plt.show()
|
||||||
show_xy([(x,y2),(x,y3),(x,y4)])
|
# show_xy([(x,y2),(x,y3),(x,y4)])
|
||||||
|
|
||||||
|
|
||||||
|
# def calc_bytes(a,b,c,i,j,k):
|
||||||
|
# ta=((a&((1<<i)-1))<<(16-i))
|
||||||
|
# tb=((b&((1<<j)-1))<<(16-i-j))
|
||||||
|
# tc=((c&((1<<k)-1))<<(16-i-j-k))
|
||||||
|
# t=ta|tb|tc
|
||||||
|
# return bytearray([t>>8,t&0xff])
|
||||||
|
|
||||||
|
# print(calc_bytes(20,15,13,5,7,4).hex(' '))
|
@@ -57,9 +57,10 @@ class coder(QObject):
|
|||||||
self.autoinc_id=False
|
self.autoinc_id=False
|
||||||
self.autotest_is_open=0
|
self.autotest_is_open=0
|
||||||
self.uid_length=16
|
self.uid_length=16
|
||||||
|
self.code_list_backcolor=False
|
||||||
self.ser=prot.protu()
|
self.ser=prot.protu()
|
||||||
self.widget = QWidget()
|
self.widget = QWidget()
|
||||||
self.widget.resize(1500, 800)
|
self.widget.resize(1500, 900)
|
||||||
self.widget.setWindowTitle("批检仪赋码工具")
|
self.widget.setWindowTitle("批检仪赋码工具")
|
||||||
self.com_but_init()
|
self.com_but_init()
|
||||||
self.combsp_init()
|
self.combsp_init()
|
||||||
@@ -76,6 +77,7 @@ class coder(QObject):
|
|||||||
self.autotest_but_init()
|
self.autotest_but_init()
|
||||||
self.stop_but_init()
|
self.stop_but_init()
|
||||||
self.code_but_init()
|
self.code_but_init()
|
||||||
|
self.moterdown_init()
|
||||||
self.recv_handler_table_init()
|
self.recv_handler_table_init()
|
||||||
self.device_type_init()
|
self.device_type_init()
|
||||||
self.widget.destroyed.connect(self.quit)
|
self.widget.destroyed.connect(self.quit)
|
||||||
@@ -189,7 +191,7 @@ class coder(QObject):
|
|||||||
# 提示信息
|
# 提示信息
|
||||||
def infotext_init(self):
|
def infotext_init(self):
|
||||||
self.infotext=QLabel(self.widget)
|
self.infotext=QLabel(self.widget)
|
||||||
self.infotext.setGeometry(QRect(30, 765, 1200, 15))
|
self.infotext.setGeometry(QRect(30, 865, 1200, 15))
|
||||||
self.infotext.setText("请打开串口以开始赋码")
|
self.infotext.setText("请打开串口以开始赋码")
|
||||||
def set_infotext(self,text:str):
|
def set_infotext(self,text:str):
|
||||||
try:
|
try:
|
||||||
@@ -262,6 +264,14 @@ class coder(QObject):
|
|||||||
self.code_but.clicked.connect(self.code_but_clicked)
|
self.code_but.clicked.connect(self.code_but_clicked)
|
||||||
self.code_but.setText("赋码")
|
self.code_but.setText("赋码")
|
||||||
|
|
||||||
|
# 电机下降
|
||||||
|
def moterdown_init(self):
|
||||||
|
self.moterdown=QPushButton(self.widget)
|
||||||
|
self.moterdown.setObjectName(u"moteerup")
|
||||||
|
self.moterdown.setGeometry(QRect(1250, 370, 93, 28))
|
||||||
|
self.moterdown.setText("电机下降")
|
||||||
|
self.moterdown.clicked.connect(self.cmd_moter_down)
|
||||||
|
|
||||||
# 初始化设备类型选择框
|
# 初始化设备类型选择框
|
||||||
def device_type_init(self):
|
def device_type_init(self):
|
||||||
self.device_type_list = QComboBox(self.widget)
|
self.device_type_list = QComboBox(self.widget)
|
||||||
@@ -281,13 +291,20 @@ class coder(QObject):
|
|||||||
def code_list_init(self):
|
def code_list_init(self):
|
||||||
self.code_list=QTableWidget(self.widget)
|
self.code_list=QTableWidget(self.widget)
|
||||||
self.code_list.setObjectName(u"code_list")
|
self.code_list.setObjectName(u"code_list")
|
||||||
self.code_list.setGeometry(QRect(30, 50, 1200, 700))
|
self.code_list.setGeometry(QRect(30, 50, 1200, 800))
|
||||||
self.code_list.setColumnCount(6)
|
self.code_list.setColumnCount(6)
|
||||||
self.code_list.setHorizontalHeaderLabels(list(["创建时间","通道号","注码结果","管壳码","UID","密码"]))
|
self.code_list.setHorizontalHeaderLabels(list(["创建时间","通道号","注码结果","管壳码","UID","密码"]))
|
||||||
self.code_list.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch)
|
self.code_list.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch)
|
||||||
|
|
||||||
# 添加数据
|
# 添加数据
|
||||||
def code_list_add(self,code_line:str):
|
def code_list_add(self,code_line:str):
|
||||||
|
stat=self.code_list_backcolor
|
||||||
|
if(stat==True):
|
||||||
|
bkcolor=QColor()
|
||||||
|
bkcolor.setRgb(150,150,150,255)
|
||||||
|
else:
|
||||||
|
bkcolor=QColor()
|
||||||
|
bkcolor.setRgb(255,255,255,255)
|
||||||
code_strs=code_line.split(",")
|
code_strs=code_line.split(",")
|
||||||
errcode=int(code_strs[2])
|
errcode=int(code_strs[2])
|
||||||
code_strs[2]=cpars.code_errinfo(errcode)
|
code_strs[2]=cpars.code_errinfo(errcode)
|
||||||
@@ -295,8 +312,9 @@ class coder(QObject):
|
|||||||
self.code_list.insertRow(RowCont)
|
self.code_list.insertRow(RowCont)
|
||||||
for i in range(6):
|
for i in range(6):
|
||||||
self.code_list.setItem(RowCont,i,QTableWidgetItem(code_strs[i]))
|
self.code_list.setItem(RowCont,i,QTableWidgetItem(code_strs[i]))
|
||||||
if(errcode!=0):
|
self.code_list.item(RowCont,i).setBackground(bkcolor)
|
||||||
self.code_list.item(RowCont,i).setBackground(Qt.GlobalColor.red)
|
if(errcode!=0):
|
||||||
|
self.code_list.item(RowCont,2).setBackground(Qt.GlobalColor.red)
|
||||||
# 滚动到底部
|
# 滚动到底部
|
||||||
def code_list_to_bottom(self):
|
def code_list_to_bottom(self):
|
||||||
self.code_list.scrollToBottom()
|
self.code_list.scrollToBottom()
|
||||||
@@ -580,7 +598,10 @@ class coder(QObject):
|
|||||||
def cmd_moter_down(self):
|
def cmd_moter_down(self):
|
||||||
d=bytearray()
|
d=bytearray()
|
||||||
d.append(0x03)
|
d.append(0x03)
|
||||||
self.ser.send(0x40,d)
|
try:
|
||||||
|
self.ser.send(0x40,d)
|
||||||
|
except Exception as e:
|
||||||
|
self.set_infotext("发送命令失败,是否没有打开串口?")
|
||||||
print("moter down.")
|
print("moter down.")
|
||||||
|
|
||||||
# 发送赋码指令
|
# 发送赋码指令
|
||||||
@@ -671,7 +692,7 @@ class coder(QObject):
|
|||||||
ack_i=i[1]
|
ack_i=i[1]
|
||||||
if(ack_i!=0):
|
if(ack_i!=0):
|
||||||
# 接触异常则忽略
|
# 接触异常则忽略
|
||||||
if(ack_i!=3):
|
if((ack_i!=3) and (ack_i!=200)):
|
||||||
ack=False
|
ack=False
|
||||||
str_start=STR_RED
|
str_start=STR_RED
|
||||||
print(str_start+"addr:",i[0],"ack:",ack_i,STR_END)
|
print(str_start+"addr:",i[0],"ack:",ack_i,STR_END)
|
||||||
@@ -680,6 +701,7 @@ class coder(QObject):
|
|||||||
print("\t","psw_code:",i[4])
|
print("\t","psw_code:",i[4])
|
||||||
acks_list.append(str(ack_i))
|
acks_list.append(str(ack_i))
|
||||||
if(ack==True):
|
if(ack==True):
|
||||||
|
self.code_list_backcolor=not self.code_list_backcolor
|
||||||
s=""
|
s=""
|
||||||
time=get_time()
|
time=get_time()
|
||||||
for i in self.code_list_lock:
|
for i in self.code_list_lock:
|
||||||
|
@@ -93,7 +93,7 @@ def code_errinfo(errcode:int):
|
|||||||
s=i.split(":")
|
s=i.split(":")
|
||||||
if(int(s[0])==errcode):
|
if(int(s[0])==errcode):
|
||||||
return s[1]
|
return s[1]
|
||||||
return "未定义的错误码"
|
return "{d}未定义的错误码".format(d=errcode)
|
||||||
|
|
||||||
|
|
||||||
# 通道数
|
# 通道数
|
||||||
|
21
daemon/uart_test.py
Normal file
21
daemon/uart_test.py
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
|
||||||
|
import serial
|
||||||
|
import serial.tools.list_ports
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ser = serial.Serial(port="/dev/ttySTM1", baudrate=115200,bytesize=serial.EIGHTBITS,parity=serial.PARITY_NONE,
|
||||||
|
stopbits=serial.STOPBITS_ONE,timeout=None)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# file=open("/dev/ttySTM1","wb")
|
||||||
|
# file.write(b"tVersion.txt=\"V1.04\"")
|
||||||
|
# file.write(bytearray([0xff,0xff,0xff]))
|
||||||
|
|
||||||
|
ser.write(b"tVersion.txt=\"V1.04\"")
|
||||||
|
ser.write(bytearray([0xff,0xff,0xff]))
|
||||||
|
|
||||||
|
|
Reference in New Issue
Block a user