fix:应徐耀需要,暂时空果回传指令并未按照协议进行,而是全为0;当前默认全为有果子

This commit is contained in:
TG 2024-06-18 16:32:38 +08:00
parent e7bbaf4b01
commit e14f5f1f4e
2 changed files with 34 additions and 14 deletions

View File

@ -124,13 +124,15 @@ def main(is_debug=False):
print(f'接收一张图时间:{end_time1 - start_time1}') print(f'接收一张图时间:{end_time1 - start_time1}')
# 使用分类器进行预测 # 使用分类器进行预测
prediction = classifier.predict(img) # prediction = classifier.predict(img)
print(f'预测结果:{prediction}') # print(f'预测结果:{prediction}')
#默认全为有果
prediction = 1
if prediction == 1: if prediction == 1:
images.append(img) images.append(img)
else: else:
response = pipe.send_data(cmd='KO', brix=0, diameter=0, green_percentage=0, weigth=0, defect_num=0, response = pipe.send_data(cmd='KO', brix=0, diameter=0, green_percentage=0, weigth=0, defect_num=0,
total_defect_area=0, rp=None) total_defect_area=0, rp=np.zeros((100, 100, 3), dtype=np.uint8))
print("图像中无果,跳过此图像") print("图像中无果,跳过此图像")
continue continue

View File

@ -173,17 +173,17 @@ class Pipe:
:return: :return:
''' '''
cmd = cmd.strip().upper() cmd = cmd.strip().upper()
if cmd == 'KO': # if cmd == 'KO':
cmd_ko = cmd.encode('ascii') # cmd_ko = cmd.encode('ascii')
length = (2).to_bytes(4, byteorder='big') # 因为只有KO两个字节所以长度是2 # length = (2).to_bytes(4, byteorder='big') # 因为只有KO两个字节所以长度是2
send_message = length + cmd_ko # send_message = length + cmd_ko
try: # try:
win32file.WriteFile(self.rgb_send, send_message) # win32file.WriteFile(self.rgb_send, send_message)
print('KO消息发送成功') # print('KO消息发送成功')
except Exception as e: # except Exception as e:
logging.error(f'发送KO指令失败错误类型{e}') # logging.error(f'发送KO指令失败错误类型{e}')
return False # return False
return True # return True
cmd_type = 'RE' cmd_type = 'RE'
cmd_re = cmd_type.upper().encode('ascii') cmd_re = cmd_type.upper().encode('ascii')
@ -211,6 +211,24 @@ class Pipe:
gp = gp.to_bytes(1, byteorder='big') gp = gp.to_bytes(1, byteorder='big')
weigth = weigth.to_bytes(1, byteorder='big') weigth = weigth.to_bytes(1, byteorder='big')
send_message = length + cmd_re + brix + gp + diameter + weigth + defect_num + total_defect_area + height + width + img_bytes send_message = length + cmd_re + brix + gp + diameter + weigth + defect_num + total_defect_area + height + width + img_bytes
elif cmd == 'KO':
brix = 0
brix = brix.to_bytes(2, byteorder='big')
gp = 0
gp = gp.to_bytes(1, byteorder='big')
weigth = 0
weigth = weigth.to_bytes(1, byteorder='big')
defect_num = 0
defect_num = defect_num.to_bytes(2, byteorder='big')
total_defect_area = 0
total_defect_area = total_defect_area.to_bytes(4, byteorder='big')
height = 100
height = height.to_bytes(2, byteorder='big')
width = 100
width = width.to_bytes(2, byteorder='big')
img_bytes = np.zeros((100, 100, 3), dtype=np.uint8).tobytes()
length = (18).to_bytes(4, byteorder='big')
send_message = length + cmd_re + brix + gp + diameter + weigth + defect_num + total_defect_area + height + width + img_bytes
try: try:
win32file.WriteFile(self.rgb_send, send_message) win32file.WriteFile(self.rgb_send, send_message)
# time.sleep(0.01) # time.sleep(0.01)