瀏覽代碼

2022/12/29 入口引导增加杂物检测 终端提示信息改进 修复终端崩溃

wk 2 年之前
父節點
當前提交
3025fb18a0

+ 2 - 1
入口引导提示节点/node.py

@@ -71,7 +71,8 @@ images={"传感器超时":"./resource/arrows/传感器超时.png",
         "向左旋转":"./resource/arrows/向左旋转.png",
         "向右旋转":"./resource/arrows/向右旋转.png",
         "空闲":"./resource/arrows/空闲.png",
-        "回正方向盘":"./resource/arrows/回正方向盘.png"}
+        "回正方向盘":"./resource/arrows/回正方向盘.png",
+        "检查杂物":"./resource/arrows/检查杂物.png"}
 
 app = QApplication(sys.argv)
 frame = ws.Frame(images,prj_parameter,True)

+ 38 - 10
入口引导提示节点/window_screen_pyqt.py

@@ -59,7 +59,8 @@ class Frame(QMainWindow):
         self.last_door_statu=None
         self.last_moving_statu = None
         self.last_show = None
-
+        self.last_back_io = "正常"
+        self.flag = None
         if second_screen == True:
             desktop = QApplication.desktop()
             screen_count = desktop.screenCount()
@@ -149,16 +150,28 @@ class Frame(QMainWindow):
         #有车才显示
         icpu_statu=message.in_mcpu_statu()
         tf.Parse(self.icpu_statu.statu,icpu_statu)
-        if icpu_statu.is_occupy != 2:
-            self.panel_txt.ShowImg(self.images["空闲"])
-            self.panel_arrow.ShowImg(self.images["空闲"])
-            self.last_show = "空闲"
-            return
+
         measure_info=message.measure_info()
         tf.Parse(self.measure_statu.statu,measure_info)
 
+        # if 门关,self.last_moving_statu 清除上一帧数据
+
+        # if self.last_moving_statu none  且后光电从被压到释放 且当前雷达数据为噪声
+           #提示  雷达呗干扰
+        if icpu_statu.door_statu == 3:
+            self.last_moving_statu = None
+
+        if icpu_statu.back_io == 2:#正常
+            if not self.last_back_io=="正常":
+                self.last_back_io="正常"
+                self.flag = True
+        elif icpu_statu.back_io == 1:
+            if not self.last_back_io=="超界":
+                self.last_back_io="超界"
+                self.flag = False
 
-        #外门状态控制投影仪
+
+        # 外门状态控制投影仪
         if self.pjc_ is not None:
             if icpu_statu.door_statu==3: #关门状态
                 if not self.last_door_statu=="closed":
@@ -172,6 +185,14 @@ class Frame(QMainWindow):
                     self.last_door_statu="opened"
 
 
+
+        if icpu_statu.is_occupy != 2:
+            self.panel_txt.ShowImg(self.images["空闲"])
+            self.panel_arrow.ShowImg(self.images["空闲"])
+            self.last_show = "空闲"
+            return
+
+
         #以下是有车的处理
         #1,显示测量数据(实时和静态)
 
@@ -192,6 +213,13 @@ class Frame(QMainWindow):
         border_statu=measure_info.border_statu
         is_moving = ((border_statu >> 11) & 0x01) == 1
         lidar_statu=measure_info.ground_status  # 测量状态(正常,无数据、噪声、超界)
+
+        if self.last_moving_statu is None and lidar_statu==MeasureStatu["噪声"] and self.flag is True:
+            self.panel_txt.ShowImg(self.images["检查杂物"])
+            self.panel_arrow.ShowImg(self.images["检查杂物"])
+            self.last_show = "检查杂物"
+            return
+
         if is_moving:
             self.last_moving_statu=None
         else:
@@ -270,9 +298,9 @@ class Frame(QMainWindow):
                 return
             border=border_statu&0x0f
             if (border in ArrowType.keys()) is False:
-                self.panel_txt.ShowImg(self.images['测绘超时'])
-                self.panel_arrow.FlashImg(self.images['测绘超时'])
-                self.last_show = "超时"
+                self.panel_txt.ShowImg(self.images['检查杂物'])
+                self.panel_arrow.FlashImg(self.images['检查杂物'])
+                self.last_show = "检查杂物"
             else:
                 if ArrowType[border] == "正确图片":
                     self.panel_arrow.ShowImg(self.images[ArrowType[border]])

+ 88 - 0
入口液晶显示屏/db_query.py

@@ -0,0 +1,88 @@
+import time
+import threading
+import pymysql as psql
+
+class DBQuery(threading.Thread):
+    def __init__(self,ip,port,database,user,password):
+        threading.Thread.__init__(self)
+        self.ip=ip
+        self.port=port
+        self.database=database
+        self.user=user
+        self.password=password
+        self.conn=psql.connect(host=self.ip,port=self.port,database=self.database,charset="utf8",user=self.user,passwd=self.password)
+        self.unit_cmd_1=None
+        self.unit_cmd_2=None
+        self.unit_cmd_3=None
+        self.isClose = False
+        self.callback = None
+    def Close(self):
+        self.isClose = True
+    def setCallback(self,callback):
+        self.callback = callback
+    def connect(self):
+        try:
+            self.conn = psql.connect(host=self.ip, port=self.port, database=self.database, charset="utf8",
+                                        user=self.user, passwd=self.password)
+            return True
+        except:
+            return False
+    def run(self):
+        while self.isClose is False:
+            try:
+                self.conn.ping()  # 采用连接对象的ping()函数检测连接状态
+            except:
+                self.connect()
+                time.sleep(0.5)
+                continue
+            #获取一个光标
+            cursor = self.conn.cursor()
+            #查询指令队列所有信息
+            SQL1="select * from command_queue where unit = 1 and type = 2 order by queue_id ASC;"
+            SQL2="select * from command_queue where unit = 2 and type = 2 order by queue_id ASC;"
+            SQL3="select * from command_queue where unit = 3 and type = 2 order by queue_id ASC;"
+            cmd_dict1 = {}
+            cmd_dict2 = {}
+            cmd_dict3 = {}
+
+            #执行语句 返回结果数量
+            command_count=cursor.execute(SQL1)
+            self.conn.commit()
+            #结果数量大于0
+            if(command_count > 0):
+                queue_cmd=cursor.fetchall()
+                column=[index[0] for index in cursor.description  ]# 列名
+                cmd_dict1 = [dict(zip(column, row)) for row in queue_cmd]  # row是数据库返回的一条一条记录,其中的每一天和column写成字典,最后就是字典数组
+
+            command_count=cursor.execute(SQL2)
+            self.conn.commit()
+            #结果数量大于0
+            if(command_count > 0):
+                queue_cmd=cursor.fetchall()
+                column=[index[0] for index in cursor.description  ]# 列名
+                cmd_dict2 = [dict(zip(column, row)) for row in queue_cmd]  # row是数据库返回的一条一条记录,其中的每一天和column写成字典,最后就是字典数组
+
+            command_count=cursor.execute(SQL3)
+            self.conn.commit()
+            #结果数量大于0
+            if(command_count > 0):
+                queue_cmd=cursor.fetchall()
+                column=[index[0] for index in cursor.description  ]# 列名
+                cmd_dict3 = [dict(zip(column, row)) for row in queue_cmd]  # row是数据库返回的一条一条记录,其中的每一天和column写成字典,最后就是字典数组
+
+            if(cmd_dict1 != self.unit_cmd_1):
+                self.unit_cmd_1 = cmd_dict1.copy()
+                if self.callback is not None and len(self.unit_cmd_1) != 0:
+                    self.callback(self.unit_cmd_1,1)
+
+            if(cmd_dict2 != self.unit_cmd_2):
+                self.unit_cmd_2 = cmd_dict2.copy()
+                if self.callback is not None and len(self.unit_cmd_2) != 0:
+                    self.callback(self.unit_cmd_2,2)
+            if(cmd_dict3 != self.unit_cmd_3):
+                self.unit_cmd_3 = cmd_dict3.copy()
+                if self.callback is not None and len(self.unit_cmd_3) != 0:
+                    self.callback(self.unit_cmd_3,3)
+            # 关闭光标
+            cursor.close()
+            time.sleep(1)

File diff suppressed because it is too large
+ 718 - 0
入口液晶显示屏/message_pb2.py


+ 70 - 0
入口液晶显示屏/node.py

@@ -0,0 +1,70 @@
+import sys
+
+from PyQt5.QtCore import QSize
+from PyQt5.QtGui import QFont, QBrush, QColor
+from PyQt5.QtWidgets import QApplication, QMainWindow, QListWidgetItem
+from ui.ui import Ui_MainWindow
+import db_query
+# db参数
+# db_ip = "192.168.1.233"
+db_ip = "127.0.0.1"
+db_port = 3306
+db_name = "ct_project"
+# db_user = "zx"
+# db_password = "zx123456"
+db_user = "root"
+db_password = "123456"
+
+class MainWindow(QMainWindow,Ui_MainWindow):
+    def __init__(self, parent=None):
+        super(MainWindow, self).__init__(parent)
+        self.setupUi(self)
+        self.A_listWidget.setGridSize(QSize(335, 60))
+        self.A_listWidget.setStyleSheet("border:5px solid #014F84;")
+        self.B_listWidget.setGridSize(QSize(335, 60))
+        self.B_listWidget.setStyleSheet("border:5px solid #014F84;")
+        self.C_listWidget.setGridSize(QSize(335, 60))
+        self.C_listWidget.setStyleSheet("border:5px solid #014F84;")
+
+    def closeEvent(self, event):
+        db_query.Close()
+        event.accept()  # 接受关闭事件
+    def getListWidgetItem(self,dict):
+        item = QListWidgetItem()
+        item.setFont(QFont('微软雅黑', 20, QFont.Bold))
+        show_str = ""
+        if (dict["statu"] == 0):  # 排队
+            item.setForeground(QColor('red'))
+            show_str = dict["car_number"] + "   排队中,请稍等片刻"
+        elif (dict["statu"] == 1):  # 工作
+            item.setForeground(QColor(255,215,0))
+            show_str = dict["car_number"] + "   取车中,等待取车结束"
+        elif (dict["statu"] == 2):  # 已完成
+            item.setForeground(QColor('green'))
+            show_str = dict["car_number"] + "   已完成,请到 %d 号出口取车" % (dict["export_id"])
+        item.setText(show_str)
+        return item
+    def callback(self,command_queue,unit):
+        command_queue.sort(reverse=True,key=lambda s: s["statu"])
+        if unit == 1:
+            self.A_listWidget.clear()
+            for dict in command_queue:
+                self.A_listWidget.addItem(self.getListWidgetItem(dict))
+        elif unit == 2:
+            self.B_listWidget.clear()
+            for dict in command_queue:
+                self.B_listWidget.addItem(self.getListWidgetItem(dict))
+        elif unit == 3:
+            self.C_listWidget.clear()
+            for dict in command_queue:
+                self.C_listWidget.addItem(self.getListWidgetItem(dict))
+
+
+if __name__ == '__main__':
+    app = QApplication(sys.argv)
+    window = MainWindow()
+    db_query = db_query.DBQuery(db_ip, db_port, db_name, db_user, db_password)
+    db_query.setCallback(window.callback)
+    db_query.start()
+    window.showMaximized()
+    sys.exit(app.exec_())

+ 9 - 9
指令入队节点/PushCommand.py

@@ -53,7 +53,7 @@ class DBCommand():
             if exist_command>0 or exist_vehicle>0:
                 ts=message.table_statu()
                 ts.execute_statu=message.eError
-                ts.statu_description="车辆 :%s 已在库内"%(cmd.car_number)
+                ts.statu_description="车辆 :%s 已在库内!"%(cmd.car_number)
                 cmd.statu.CopyFrom(ts)
                 self.conn.commit()
                 cursor.close()
@@ -69,7 +69,7 @@ class DBCommand():
                 if not idle_space_count-wait_park_count>0:
                     ts=message.table_statu()
                     ts.execute_statu=message.eError
-                    ts.statu_description="没有空余车位,车牌号:%s 高度:%.3fm"%(cmd.car_number,cmd.entrance_measure_info.height)
+                    ts.statu_description="没有空余车位,车牌号:%s 高度:%.3fm!"%(cmd.car_number,cmd.entrance_measure_info.height)
                     cmd.statu.CopyFrom(ts)
                     self.conn.commit()
                     cursor.close()
@@ -98,7 +98,7 @@ class DBCommand():
                 if not (suv_idl_count-queue_suv_count-space_scarcity)>0:
                     ts=message.table_statu()
                     ts.execute_statu=message.eError
-                    ts.statu_description="没有SUV车位,车牌号:%s,高度:%.3fm"%(cmd.car_number,cmd.entrance_measure_info.height)
+                    ts.statu_description="没有SUV车位,车牌号:%s,高度:%.3fm!"%(cmd.car_number,cmd.entrance_measure_info.height)
                     cmd.statu.CopyFrom(ts)
                     self.conn.commit()
                     cursor.close()
@@ -138,7 +138,7 @@ class DBCommand():
                     if big_idl_count<0:
                         ts = message.table_statu()
                         ts.execute_statu = message.eError
-                        ts.statu_description = "没有SUV车位,车牌号:%s,高度:%.3fm" % (
+                        ts.statu_description = "没有SUV车位,车牌号:%s,高度:%.3fm!" % (
                         cmd.car_number, cmd.entrance_measure_info.height)
                         cmd.statu.CopyFrom(ts)
                         self.conn.commit()
@@ -147,7 +147,7 @@ class DBCommand():
                 else:
                     ts = message.table_statu()
                     ts.execute_statu = message.eError
-                    ts.statu_description = "没有SUV车位,车牌号:%s,高度:%.3fm" % (
+                    ts.statu_description = "没有SUV车位,车牌号:%s,高度:%.3fm!" % (
                     cmd.car_number, cmd.entrance_measure_info.height)
                     cmd.statu.CopyFrom(ts)
                     self.conn.commit()
@@ -156,7 +156,7 @@ class DBCommand():
             else:
                 ts = message.table_statu()
                 ts.execute_statu = message.eError
-                ts.statu_description = "车辆超高,车牌号:%s,高度:%.3fm" % (
+                ts.statu_description = "车辆超高,车牌号:%s,高度:%.3fm!" % (
                 cmd.car_number, cmd.entrance_measure_info.height)
                 cmd.statu.CopyFrom(ts)
                 self.conn.commit()
@@ -218,7 +218,7 @@ class DBCommand():
             if not len(car_info)>=1:
                 ts=message.table_statu()
                 ts.execute_statu=message.eError
-                ts.statu_description="车辆信息不存在"
+                ts.statu_description="车辆信息不存在!"
                 cmd.statu.CopyFrom(ts)
             else:
                 SQL="select * from command_queue where primary_key='%s'"%(cmd.primary_key)
@@ -226,7 +226,7 @@ class DBCommand():
                 if num>0:   #取车指令在对哦中,不能执行
                     ts=message.table_statu()
                     ts.execute_statu=message.eError
-                    ts.statu_description="指令正在执行中,key:%s "%(cmd.primary_key)
+                    ts.statu_description="指令正在执行中,请稍等!"
                     cmd.statu.CopyFrom(ts)
                 else:
                     car_number=car_info[0][0]
@@ -239,7 +239,7 @@ class DBCommand():
                     if not len(space)==1:
                         ts=message.table_statu()
                         ts.execute_statu=message.eError
-                        ts.statu_description="没有找到车辆信息,车牌号:%s"%(cmd.car_number)
+                        ts.statu_description="没有找到车辆信息,请联系管理员!"
                         cmd.statu.CopyFrom(ts)
                     else:
                     #查询到单元号,给指令表单单元号赋值

+ 12 - 12
指令检查节点/CheckEntrance.py

@@ -59,7 +59,7 @@ class EntranceChecker(threading.Thread):
                     return tf.MessageToString(park, as_utf8=True)
                 time.sleep(0.1)
             park.statu.execute_statu = message.eError
-            park.statu.statu_description = "请检查库内是否有人员或宠物逗留!"
+            park.statu.statu_description = "请检查入口处是否有人员逗留!"
             return tf.MessageToString(park, as_utf8=True)
         else:
             park.statu.execute_statu = message.eError
@@ -72,10 +72,10 @@ class EntranceChecker(threading.Thread):
             time.sleep(0.05)
             #先判断连接状态
             if self.icpu_statu.timeout():
-                self.error_str="传感器未连接"
+                self.error_str="服务器超时,请联系管理员!"
                 continue
             if self.measure_statu.timeout():
-                self.error_str='测绘超时'
+                self.error_str='服务器超时,请联系管理员!'
                 continue
             #有车才显示
             icpu_statu=message.in_mcpu_statu()
@@ -86,11 +86,11 @@ class EntranceChecker(threading.Thread):
                 continue
 
             if icpu_statu.heighth == 1:
-                self.error_str = '未知车高'
+                self.error_str = '未知车高!'
                 continue
 
             if icpu_statu.heighth == 5:
-                self.error_str = '车辆超高'
+                self.error_str = '车辆超高!'
                 continue
             #以下是有车的处理
             #1,显示测量数据(实时和静态)
@@ -130,7 +130,7 @@ class EntranceChecker(threading.Thread):
             #先判断光电
             if is_moving:
                 if icpu_statu.back_io==1:
-                    self.error_str='请按提示调整'
+                    self.error_str='请按提示调整!'
                     self.last_show="调整"
                     continue
 
@@ -149,29 +149,29 @@ class EntranceChecker(threading.Thread):
                 continue
             elif lidar_statu==MeasureStatu["超界"]:
                 if (border_statu>>7)&0x01==1:
-                    self.error_str='轴距超差'
+                    self.error_str='轴距不满足规格,请驶出!'
                     self.last_show="轴距超差"
                     continue
                 if (border_statu>>9)&0x01==1:
-                    self.error_str='请按提示调整(向左旋转)'
+                    self.error_str='请按提示调整!'
                     self.last_show="请调整"
                     continue
                 if (border_statu>>8)&0x01==1:
-                    self.error_str='请按提示调整(向右旋转)'
+                    self.error_str='请按提示调整!'
                     self.last_show="请调整"
                     continue
                 if (border_statu>>10)&0x01==1:
-                    self.error_str='请按提示调整(回正方向盘)'
+                    self.error_str='请按提示调整!'
                     self.last_show="请调整"
                     continue
                 if (border_statu>>6)&0x01==1:
-                    self.error_str='超宽'
+                    self.error_str='车宽不满足规格,请驶出!'
                     self.last_show="超宽"
                     continue
                 border=border_statu&0x0f
 
                 if (border in ArrowType.keys()) is False:
-                    self.error_str='测量有误'
+                    self.error_str='服务器超时,请联系管理员!'
                     self.last_show = "超时"
                 else:
                     if ArrowType[border] == "正确图片":

+ 33 - 22
终端/ct_terminal/ct_terminal/MainForm.cs

@@ -1,4 +1,7 @@
-using System;
+#define ENABLE_PACK
+
+
+using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
@@ -22,6 +25,8 @@ using RabbitMQ.Client.Events;
 
 namespace ct_terminal
 {
+    
+
     public partial class MainForm : Form
     {
         //自适应窗口大小
@@ -81,22 +86,24 @@ namespace ct_terminal
             string t_pick_queue_key = "pick_response_" + m_ternimalID.ToString() + "_queue";
             m_pick_consumer.consumer_init(m_rabbitmq_ip, m_rabbitmq_port, m_rabbitmq_user, m_rabbitmq_password, t_pick_queue_key, pick_response_thread);
 
-            //this.parkingBtn.BackgroundImage = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "./Resource/" + "parkingBtn_gray.BackgroundImage.png");
-            //this.parkingBtn.Enabled = false;
-
-            //获取号牌线程
-            m_car_number = new NumMachine.NumMachineLinker();
-            m_car_number_condition = true;
-            m_car_number_thread = new Thread(get_car_number_thread);
 
-            //初始化打印机
-            PrintManual.Instance.PrintManualInit();
 
-            //初始化消费指令
-            string t_park_queue_key = "park_response_" + m_ternimalID.ToString() + "_queue";
-            m_park_consumer.consumer_init(m_rabbitmq_ip, m_rabbitmq_port, m_rabbitmq_user, m_rabbitmq_password, t_park_queue_key, park_response_thread);
+#if ENABLE_PACK
+                //获取号牌线程
+                m_car_number = new NumMachine.NumMachineLinker();
+                m_car_number_condition = true;
+                m_car_number_thread = new Thread(get_car_number_thread);
 
+                //初始化打印机
+                PrintManual.Instance.PrintManualInit();
 
+                //初始化消费指令
+                string t_park_queue_key = "park_response_" + m_ternimalID.ToString() + "_queue";
+                m_park_consumer.consumer_init(m_rabbitmq_ip, m_rabbitmq_port, m_rabbitmq_user, m_rabbitmq_password, t_park_queue_key, park_response_thread);
+#else
+                this.parkingBtn.BackgroundImage = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "./Resource/" + "parkingBtn_gray.BackgroundImage.png");
+                this.parkingBtn.Enabled = false;
+#endif
         }
         private void MainForm_Load(object sender, EventArgs e)
         {
@@ -115,6 +122,7 @@ namespace ct_terminal
             //启动接受反馈
             m_pick_consumer.run();
 
+#if ENABLE_PACK
             //启动号牌机
             m_car_number.Start();
             m_car_number_thread.Start();
@@ -134,6 +142,7 @@ namespace ct_terminal
                 }
                 catch (Exception) { }
             }
+#endif
 
         }
         public string startNumer(Random r)
@@ -175,10 +184,10 @@ namespace ct_terminal
             if (m_producer.send(park_Table.ToText(), "command_ex", "user_command_port") == false)
             {
                 MessageBoxEe messageBoxEe = new MessageBoxEe();
-                messageBoxEe.Show("服务器连接失败!请重试,无效后联系管理员!");
+                messageBoxEe.Show("服务器连接失败!请联系管理员!");
                 return;
             }
-            this.parkingBtn.BackgroundImage = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "./Resource/" + "parkingBtn_gray.BackgroundImage.png");
+            //this.parkingBtn.BackgroundImage = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "./Resource/" + "parkingBtn_gray.BackgroundImage.png");
             this.parkingBtn.Enabled = false;
             while (!m_park_command_response.IsTimeout())
             {
@@ -214,7 +223,7 @@ namespace ct_terminal
                     messageBoxEe.Show("反馈解析失败!\n" + ex.StackTrace);
                 }
                 m_park_command_response = "";
-                this.parkingBtn.BackgroundImage = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "./Resource/" + "parkingBtn.BackgroundImage.png");
+                //this.parkingBtn.BackgroundImage = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "./Resource/" + "parkingBtn.BackgroundImage.png");
                 this.parkingBtn.Enabled = true;
                 return;
   
@@ -222,11 +231,11 @@ namespace ct_terminal
             if (m_park_command_response.IsTimeout() && m_park_command_response.Value == "")
             {
                 MessageBoxEe messageBoxEe = new MessageBoxEe();
-                messageBoxEe.Show("反馈超时,请联系管理员!");
+                messageBoxEe.Show("反馈超时,请重试或联系管理员!");
             }
             m_park_command_response = "";
 
-            this.parkingBtn.BackgroundImage = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "./Resource/" + "parkingBtn.BackgroundImage.png");
+            //this.parkingBtn.BackgroundImage = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "./Resource/" + "parkingBtn.BackgroundImage.png");
 
             this.parkingBtn.Enabled = true;
 
@@ -253,10 +262,10 @@ namespace ct_terminal
             if (m_producer.send(pick_Table.ToText(), "command_ex", "user_command_port") == false)
             {
                 MessageBoxEe messageBoxEe = new MessageBoxEe();
-                messageBoxEe.Show("服务器连接失败!请重试,无效后联系管理员!");
+                messageBoxEe.Show("服务器连接失败!请联系管理员!");
                 return;
             }
-            this.pickupBtn.BackgroundImage = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "./Resource/" + "fetchingBtn_gray.BackgroundImage.png");
+            //this.pickupBtn.BackgroundImage = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "./Resource/" + "fetchingBtn_gray.BackgroundImage.png");
             this.pickupBtn.Enabled = false;
             while (!m_pick_command_response.IsTimeout())
             {
@@ -282,10 +291,10 @@ namespace ct_terminal
             if (m_pick_command_response.IsTimeout()&& m_pick_command_response.Value == "")
             {
                 MessageBoxEe messageBoxEe = new MessageBoxEe();
-                messageBoxEe.Show("反馈超时,请联系管理员!");
+                messageBoxEe.Show("反馈超时,请重试或联系管理员!");
             }
             m_pick_command_response = "";
-            this.pickupBtn.BackgroundImage = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "./Resource/" + "fetchingBtn.BackgroundImage.png");
+            //this.pickupBtn.BackgroundImage = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "./Resource/" + "fetchingBtn.BackgroundImage.png");
             this.pickupBtn.Enabled = true;
         }
         //停车反馈线程
@@ -324,6 +333,7 @@ namespace ct_terminal
 
             //关闭播放器
             m_mediaPlayer.mediaplayer_uninit();
+#if ENABLE_PACK
             //关闭打印机
             PrintManual.Instance.Close();
             //关闭号牌机连接
@@ -333,6 +343,7 @@ namespace ct_terminal
             {
                 m_car_number_thread.Abort();
             }
+#endif
         }