/// <summary>
        /// 发送任务
        /// </summary>
        public int sendTask(TaskRecord tr)
        {
            int result = 0;

            Console.WriteLine("ready to send task: " + tr.singleTask.taskName + "forklist stat:" + getForkLift().taskStep + "forklift finished:" + getForkLift().finishStatus);

            string cmd = "cmd=set task by name;name=" + tr.taskRecordName;             //发送命令格式,如果有多个对应值用;隔开,如果后面没有命令了,不需要再加;号

            Console.WriteLine("send msg :" + cmd + "to " + getForkLift().forklift_number);

            lock (getAGVSocketClient().clientLock) {
                try {
                    getAGVSocketClient().SendMessage(cmd);                      //确保发送成功

                    tr.taskRecordStat      = TASKSTAT_T.TASK_SEND;
                    tr.singleTask.taskStat = TASKSTAT_T.TASK_SEND;
                    FormController.getFormController().getMainFrm().updateFrm();                     //设置更新界面
                    tr.forkLiftWrapper        = this;
                    getForkLift().taskStep    = TASK_STEP.TASK_SENDED;
                    getForkLift().currentTask = tr.singleTask.taskText;
                    DBDao.getDao().UpdateTaskRecord(tr);
                    DBDao.getDao().updateForkLift(this);                      //更新车子状态
                } catch (Exception ex) {
                    Console.WriteLine(ex.ToString());
                    AGVLog.WriteError("发送" + tr.singleTask.taskText +
                                      " 任务到" + getForkLift().forklift_number + "号车 失败",
                                      new StackFrame(true));
                    result = -1;
                }
                AGVLog.WriteError("发送" + tr.singleTask.taskText +
                                  " 任务到" + getForkLift().forklift_number + "号车 成功",
                                  new StackFrame(true));
                return(result);
            }
        }
Ejemplo n.º 2
0
        public bool SendMessage(string sendMessage)
        {
            if (!sendMessage.Equals(lastMessage))
            {
                AGVLog.WriteSendInfo(sendMessage, new StackFrame(true));
            }
            else
            {
            }
            lastMessage = sendMessage;

            Socket msock;

            try {
                msock = getTcpClient().Client;
                byte[] data = Encoding.ASCII.GetBytes(sendMessage);
                DBDao.getDao().InsertConnectMsg(sendMessage, "SendMessage");
                msock.Send(data);
                if (!"发送消息成功".Equals(lastMsgAboutSend))
                {
                    lastMsgAboutSend = "发送消息成功";
                    AGVLog.WriteConnectInfo(lastMsgAboutSend, new StackFrame(true));
                }
                return(true);
            } catch (Exception se) {
                lastMsgAboutSend = "发送消息错误" + se.Message + ",系统稍后将重新连接AGV";
                AGVLog.WriteConnectInfo(lastMsgAboutSend, new StackFrame(true));
                Closeclient();
                return(false);
            }
        }
Ejemplo n.º 3
0
        public void SendMessage(string sendMessage)
        {
            Socket msock;

            Console.WriteLine("SendMessage ConnectStatus " + ConnectStatus);
            if (client == null || ConnectStatus == false) //检查连接状态
            {
                Exception ex = new Exception("connect err");
                throw (ex);
            }

            msock = client.Client;
            try
            {
                byte[] data = new byte[128];
                data = Encoding.ASCII.GetBytes(sendMessage);
                msock.Send(data);
            }
            catch (Exception se)
            {
                AGVLog.WriteError("发送消息错误" + se.Message, new StackFrame(true));
                Console.WriteLine("send message error" + se.Message);
                Closeclient();
            }
        }
        /// <summary>
        /// 重新与车子建立连接
        /// </summary>
        public void reConnect()
        {
            Console.WriteLine("ConnectStatus:   " + connectStatus);
            AGVLog.WriteInfo("ConnectStatus: " + connectStatus, new StackFrame(true));

            while (forkLiftWrapper.getForkLift().isUsed == 1 && !connectStatus)
            {
                isConnectThread = true;              //设置重连标志true
                Thread.Sleep(5000);                  //5秒钟重连一次

                Console.WriteLine("start to reconnect");
                AGVLog.WriteWarn("start to reconnect", new StackFrame(true));

                TcpConnect(forkLiftWrapper.getForkLift().ip, forkLiftWrapper.getForkLift().port);

                if (connectStatus == true)
                {
                    AGVLog.WriteInfo("reconnect ip: " + forkLiftWrapper.getForkLift().ip + " :" + forkLiftWrapper.getForkLift().port + "success", new StackFrame(true));
                    Console.WriteLine("reconnect ip: " + forkLiftWrapper.getForkLift().ip + ":" + forkLiftWrapper.getForkLift().port + "success");
                    AGVLog.WriteInfo("restart recv thread", new StackFrame(true));

                    //hrctCallback?.Invoke(forkLiftWrapper, true);
                    if (hrctCallback != null)
                    {
                        hrctCallback(forkLiftWrapper, true);
                    }
                }
            }
            isConnectThread = false;             //重连成功
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 插入任务记录
        /// </summary>
        /// <param name="taskRecordStat"></param>
        /// <param name="st"></param>
        public void InsertTaskRecordBak(TaskRecord tr)
        {
            float now        = DateTime.Now.Hour * 60 * 60 + DateTime.Now.Minute * 60 + DateTime.Now.Second; //当前时间的秒数
            float excute_min = (now - (tr.updateTime.Hour * 60 * 60 + tr.updateTime.Minute * 60 + tr.updateTime.Second)) / 60;

            if (excute_min > 20 || excute_min < 3)
            {
                excute_min = 6;  //过滤异常数据
            }
            string sql = "INSERT INTO `agv`.`taskrecord_bak` (`taskRecordStat`, `forklift`, `singleTask`, `taskRecordExcuteMinute`) VALUES ( " + (int)tr.taskRecordStat + ", " + (int)tr.forkLift.id + ", " + tr.singleTask.taskID + ", " + excute_min + ");";

            AGVLog.WriteInfo("InsertTaskRecordBak sql = " + sql, new StackFrame(true));


            try
            {
                lock (lockDB)
                {
                    if (this.OpenConnection() == true)
                    {
                        Console.WriteLine("sql = " + sql);
                        MySqlCommand cmd = new MySqlCommand(sql, connection);
                        cmd.ExecuteNonQuery();

                        this.CloseConnection();
                    }
                }
            } catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                this.CloseConnection();
            }
        }
        public void updateAlarm(int alarm)
        {
            Console.WriteLine(forkLift.forklift_number + "号车 alarm = " + alarm +
                              "gAlarm =" + forkLift.gAlarm);
            if (alarm == 0)
            {
                forkLift.gAlarm++;
            }
            else if (alarm == 1)
            {
                forkLift.gAlarm = 0;
            }
            Console.WriteLine(forkLift.forklift_number + "号车 alarm = " + alarm + "gAlarm =" + forkLift.gAlarm);

            if (forkLift.gAlarm > AGVConstant.AGVALARM_TIME)              //防撞信号 检测超过12次,弹出报警提示
            {
                string msg = forkLift.forklift_number + "触发防撞,暂停所有AGV";
                AGVLog.WriteError(msg, new StackFrame(true));
                AGVMessage message = new AGVMessage();
                message.setMessageType(AGVMessageHandler_TYPE_T.AGVMessageHandler_AGV_ALARM);
                message.setMessageStr(msg);
                TaskexeDao.getDao().InsertTaskexePause("");
                TaskexeDao.getDao().InsertTaskexeSysInfo(msg);
                forkLift.gAlarm = 0;
                AGVMessageHandler.getMessageHandler().setMessage(message);
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 更新任务记录
        /// </summary>
        /// <param name="taskRecordStat">任务状态</param>
        /// <param name="st">对应的任务ID</param>
        public void UpdateTaskRecord(TaskRecord tr)
        {
            string sql;

            if (tr.forkLift == null)
            {
                sql = "update taskrecord set taskRecordStat = " + (int)tr.taskRecordStat + ", forklift = NULL , taskLevel = " + tr.taskLevel + " where taskRecordStat != 4 and singleTask = " + tr.singleTask.taskID;
            }
            else
            {
                sql = "update taskrecord set taskRecordStat = " + (int)tr.taskRecordStat + ", forklift = " + tr.forkLift.id + " , taskLevel = " + tr.taskLevel + " where taskRecordStat != 4 and singleTask = " + tr.singleTask.taskID;;
            }

            AGVLog.WriteInfo("UpdateTaskRecord sql = " + sql, new StackFrame(true));
            try
            {
                lock (lockDB)
                {
                    Console.WriteLine("UpdateTaskRecord sql = " + sql);
                    if (this.OpenConnection() == true)
                    {
                        MySqlCommand cmd = new MySqlCommand(sql, connection);
                        cmd.ExecuteNonQuery();

                        this.CloseConnection();
                    }
                }
            }catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                this.CloseConnection();
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 移除任务记录
        /// </summary>
        /// <param name="taskRecordStat">任务状态</param>
        /// <param name="st">对应的任务ID</param>
        /// <param name="taskPalletType">托盘类型 默认托盘类型为0 表示忽略托盘类型这个条件</param>
        public void RemoveTaskRecord(SingleTask st, TASKSTAT_T taskRecordStat)
        {
            string sql = "delete from taskrecord where taskRecordStat = " + (int)taskRecordStat + " and singleTask = " + st.taskID;

            AGVLog.WriteInfo("RemoveTaskRecord sql = " + sql, new StackFrame(true));
            try
            {
                lock (lockDB)
                {
                    Console.WriteLine("removeTaskRecor sql = " + sql);
                    if (this.OpenConnection() == true)
                    {
                        Console.WriteLine("sql = " + sql);
                        MySqlCommand cmd = new MySqlCommand(sql, connection);
                        cmd.ExecuteNonQuery();

                        this.CloseConnection();
                    }
                }
            }catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                this.CloseConnection();
            }
        }
        private void ServerService()
        {
            try {
                checkClientSocket();
                while (true)
                {
                    Console.WriteLine("read to send");
                    ForkLiftWrapper forklift = AGVCacheData.getForkLiftByID(3);
                    StringBuilder   sb       = new StringBuilder();
                    sb.Append("battery_soc=");
                    sb.Append(forklift.getBatteryInfo().getBatterySoc() + ";");

                    sb.Append("agvMessage=");
                    sb.Append((int)AGVMessageHandler.getMessageHandler().getMessage().getMessageType());

                    Console.WriteLine(" send data = " + sb.ToString());
                    AGVLog.WriteError(" send data = " + sb.ToString(), new StackFrame(true));
                    byte[] byteData = Encoding.ASCII.GetBytes(sb.ToString());
                    DBDao.getDao().InsertConnectMsg(sb.ToString(), "ServerService");
                    clientSocket.Send(byteData);
                    Thread.Sleep(10000);
                }
            } catch (Exception ex) {
                Console.WriteLine(ex.ToString());
            }
            serverFuncOK = true;
            turnToMainThread();
        }
Ejemplo n.º 10
0
        public void Closeclient()
        {
            try
            {
                ConnectStatus = false;
                if (client != null)
                {
                    AGVLog.WriteInfo("关闭socket", new StackFrame(true));
                    client.Client.Close();
                    client.Close();
                    client = null;
                    if (isConnectThread == false && t_forklift.isUsed == 1)  //connect断开后开启与车子重连
                    {
                        Console.WriteLine("Close to start reconnect" + isConnectThread);
                        startReconnectThread();
                    }

                    if (t_forklift.isUsed == 1)
                    {
                        if (hrctCallback != null)
                        {
                            hrctCallback(this, false);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                AGVLog.WriteError("关闭socket错误" + ex.Message, new StackFrame(true));
                Console.WriteLine("close socket fail");
            }
            Console.WriteLine("client is null now");
            AGVLog.WriteWarn("client is null now", new StackFrame(true));
        }
Ejemplo n.º 11
0
 /// <summary>
 /// 解析车子反馈报文
 /// </summary>
 private string parseForkLiftMsg(byte[] buffer, int length)
 {
     if (buffer.Length == 0)
     {
         AGVLog.WriteError("forklift buffer length is 0", new StackFrame(true));
         Console.WriteLine("forklift buffer length is 0");
         return(null);
     }
     return(Encoding.ASCII.GetString(buffer).Trim('\0').Trim());
 }
Ejemplo n.º 12
0
        private TcpClient getTcpClient()
        {
            while (client == null)
            {
                Console.WriteLine("client is null wait 1 second");
                AGVLog.WriteWarn("client is null, wait 1 second", new StackFrame(true));
                Thread.Sleep(1);
            }

            return(client);
        }
Ejemplo n.º 13
0
 public void setMessage(AGVMessage message)
 {
     if (this.message.getMessageType() != message.getMessageType())
     {
         this.message_next = message;                  //下一个要处理的message type与当前的message不一样
         AGVLog.WriteInfo("AGVMessageHandler set message " + message.getMessageStr(), new StackFrame(true));
     }
     else
     {
         AGVLog.WriteInfo("AGVMessageHandler set same message " + message.getMessageStr(), new StackFrame(true));
     }
 }
Ejemplo n.º 14
0
        public void DeleteWithSql(string sql)
        {
            string query = sql;

            AGVLog.WriteInfo("DeleteWithSql sql = " + sql, new StackFrame(true));
            try {
                lock (lockDB) {
                    dataReader = execNonQuery(sql);
                }
            } catch (Exception) {
                Console.WriteLine(" delete sql err : " + sql);
            }
        }
Ejemplo n.º 15
0
        /// <summary>
        /// 移除任务记录
        /// </summary>
        public void RemoveTaskRecord(TaskRecord tr)
        {
            string sql = "delete from taskrecord where taskRecordStat = " + (int)tr.taskRecordStat + " and forklift = " + tr.forkLiftWrapper.getForkLift().id + " and singleTask = " + tr.singleTask.taskID;

            AGVLog.WriteInfo("RemoveTaskRecord sql = " + sql, new StackFrame(true));
            try {
                lock (lockDB) {
                    dataReader = execNonQuery(sql);
                }
            } catch (Exception ex) {
                Console.WriteLine(ex.ToString());
            }
        }
Ejemplo n.º 16
0
        /// <summary>
        /// 插入任务记录
        /// </summary>
        public void InsertTaskRecord(TASKSTAT_T taskRecordStat, SingleTask st)
        {
            string sql = "INSERT INTO `taskrecord` (`taskRecordStat`, `singleTask`) VALUES ( " + (int)taskRecordStat + ", " + st.taskID + ");";

            AGVLog.WriteInfo("InsertTaskRecord sql = " + sql, new StackFrame(true));
            try {
                lock (lockDB) {
                    dataReader = execNonQuery(sql);
                }
            } catch (Exception ex) {
                Console.WriteLine(ex.ToString());
            }
        }
Ejemplo n.º 17
0
        public void agvInit()
        {
            AGVLog.WriteInfo("程序启动", new StackFrame(true));
            forkLiftList   = getAGVUtil().getForkLiftList();
            singleTaskList = getSingleTaskList();
            setForkliftStateFirst();

            ENV_ERR_TYPE err = checkRunning();

            handleCheckRunning(err);

            agvCom.startReadSerialPortThread();
        }
Ejemplo n.º 18
0
 /// <summary>
 /// 与叉车连接
 /// </summary>
 public void connectForks()
 {
     foreach (ForkLiftWrapper fl in forkLiftWrapperList)
     {
         try {
             fl.setAGVSocketClient(new AGVSocketClient());
             fl.getAGVSocketClient().registerRecvMessageCallback(handleForkLiftMsg);
             fl.getAGVSocketClient().startRecvMsg();
         } catch (Exception ex) {
             AGVLog.WriteConnectInfo("连接到 ip: " + fl.getForkLift().ip + "port: " + fl.getForkLift().port + "失败!" + ex.Message, new StackFrame(true));
         }
     }
 }
Ejemplo n.º 19
0
        /// <summary>
        /// 更新车子状态
        /// </summary>
        public void updateForkLift(ForkLiftWrapper fl)
        {
            string sql = "update forklift set currentTask = \"" + fl.getForkLift().currentTask + "\", taskStep = " +
                         (int)fl.getForkLift().taskStep + " where id = " + fl.getForkLift().id;

            AGVLog.WriteInfo("updateForkLift sql = " + sql, new StackFrame(true));
            try {
                lock (lockDB) {
                    dataReader = execNonQuery(sql);
                }
            } catch (Exception ex) {
                Console.WriteLine(ex.ToString());
            }
        }
Ejemplo n.º 20
0
        /// <summary>
        /// 移除任务记录
        /// </summary>
        public void RemoveTaskRecord(SingleTask st, TASKSTAT_T taskRecordStat)
        {
            string sql = "delete from taskrecord where taskRecordStat = " + (int)taskRecordStat + " and singleTask = " + st.taskID;

            AGVLog.WriteInfo("RemoveTaskRecord sql = " + sql, new StackFrame(true));
            try {
                lock (lockDB) {
                    Console.WriteLine("removeTaskRecor sql = " + sql);
                    dataReader = execNonQuery(sql);
                }
            } catch (Exception ex) {
                Console.WriteLine(ex.ToString());
            }
        }
Ejemplo n.º 21
0
        // <summary>
        /// 判断字符串是否符合给定的标准
        /// </summary>
        /// <param name="value">待判断的值</param>
        /// <param name="regex">正则表达式</param>
        /// <returns></returns>
        public static bool IsMatch(string value, string regex)
        {
            Match m = Regex.Match(value, regex);

            if (m.Success)
            {
                return(true);
            }
            else
            {
                AGVLog.WriteError("match err", new System.Diagnostics.StackFrame(true));
                return(false);
            }
        }
Ejemplo n.º 22
0
 private void Closeclient()
 {
     try {
         if (tcpClient != null)
         {
             tcpClient.Client.Close();
             tcpClient.Close();
             tcpClient = null;
         }
         Thread.Sleep(5000);
     } catch (Exception ex) {
         lastMsgAboutSend = "关闭socket错误" + ex.Message + ",系统稍后将重新连接AGV";
         AGVLog.WriteConnectInfo(lastMsgAboutSend, new StackFrame(true));
     }
 }
 public void resolveTaskCommand()
 {
     try {
         while (true)
         {
             if (TaskexeService.getInstance().isSystemRunning())
             {
                 sendCommand();
             }
             Thread.Sleep(1000);
         }
     } catch (Exception) {
         AGVLog.WriteSendInfo("循环器异常退出!", new StackFrame(true));
     }
 }
Ejemplo n.º 24
0
        public void click(object sender, EventArgs e)
        {
            string cmd = "cmd=set task by name;name=" + this.Name + ";";

            AGVLog.WriteError("向AGV下达命令: " + cmd, new StackFrame(true));
            Console.WriteLine("向AGV下达命令: " + cmd);
            if (AGVEngine.getInstance().isAgvReady())
            {
                ForkLiftWrappersService.getInstance().getForkLiftByNunber(1).getAGVSocketClient().SendMessage(cmd);
            }
            else
            {
                MessageBox.Show("环境中AGV尚未准备妥当");
            }
        }
Ejemplo n.º 25
0
        public static void Send(Socket handler)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("battery_soc=");
            sb.Append(forklift.getBatterySoc() + ";");

            sb.Append("agvMessage=");
            sb.Append((int)AGVInitialize.getInitialize().getAGVMessage().getMessage().getMessageType());

            Console.WriteLine(" send data = " + sb.ToString());
            AGVLog.WriteError(" send data = " + sb.ToString(), new StackFrame(true));
            byte[] byteData = Encoding.ASCII.GetBytes(sb.ToString());
            handler.Send(byteData);
        }
        private void receive(object fl)
        {
            //ForkLiftWrapper forklift = new ForkLiftWrapper();
            //forklift.setForkLift((ForkLiftItem)fl);
            byte[]    buffer = new byte[512];
            Socket    msock;
            TcpClient vClient = null;

            Console.WriteLine("receive ConnectStatus: " + connectStatus);
            if (connectStatus == false)             //检查连接状态
            {
                return;
            }

            while (isRecvMsgFlag)
            {
                try {
                    vClient = getTcpClient();
                    msock   = tcpClient.Client;
                    Array.Clear(buffer, 0, buffer.Length);
                    tcpClient.GetStream();

                    int    bytes      = msock.Receive(buffer);
                    string receiveStr = Encoding.ASCII.GetString(buffer).Trim();
                    CommandService.getInstance().setLatestMsgFromClient(receiveStr);
                    DBDao.getDao().InsertConnectMsg(receiveStr, "receive");

                    readTimeOutTimes = 0;                     //读取超时次数清零
                    if (hrmCallback != null)
                    {
                        hrmCallback(forkLiftWrapper.getForkLift().id, buffer, bytes);
                    }
                } catch (SocketException ex) {
                    if (ex.ErrorCode == 10060 && readTimeOutTimes < 10)                     //超时次数超过10次,关闭socket进行重连
                    {
                        AGVLog.WriteWarn("read msg timeout", new StackFrame(true));
                        Console.WriteLine("read msg timeout");
                        readTimeOutTimes++;
                        continue;
                    }
                    AGVLog.WriteError("读取消息错误" + ex.ErrorCode, new StackFrame(true));
                    Console.WriteLine("recv msg client close" + ex.ErrorCode);
                    Closeclient();
                } catch (Exception ex) {
                    Closeclient();
                }
            }
        }
		/// <summary>
		/// 
		/// </summary>
		/// <param name="needStart">需要启动的车</param>
		/// <param name="work"></param>
		/// <returns></returns>
		private bool check_start_state(ForkLiftWrapper needStart, ForkLiftWrapper work) {
			if (work.getPosition().getArea() == 1 && work.getForkLift().isUsed == 1) //只有下货阶段可以提前启动
			{
				if (!ScheduleFactory.getSchedule().getDownDeliverPeriod() && work.getPosition().getPx() - needStart.getPosition().getPx() > 500) {
					return true;
				}

				///上货的时候直接不给启动
				Console.WriteLine("叉车 " + work.getForkLift().id + "在区域1,不能启动" + " 距离 " + (work.getPosition().getPx() - needStart.getPosition().getPx()));
				AGVLog.WriteInfo("叉车 " + work.getForkLift().id + "在区域1,不能启动" + " 距离 " + (work.getPosition().getPx() - needStart.getPosition().getPx()), new StackFrame(true));
				return false;
			}

			return true;

		}
 public void listenThread1()
 {
     while (true)
     {
         if (thread1 == null)
         {
             return;
         }
         else
         {
             AGVLog.WriteThreadInfo(thread1.Name + "的执行状态为:" + thread1.ThreadState + ",其托管线程id为"
                                    + thread1.ManagedThreadId, new StackFrame(true));
         }
         Thread.Sleep(2000);
     }
 }
Ejemplo n.º 29
0
        private void flReconnect(ForkLiftWrapper forkLiftWrapper, bool status)
        {
            if (status)                                              //如果接收成功
            {
                forkLiftWrapper.getAGVSocketClient().startRecvMsg(); //重新启动接收程序线程
            }
            else
            {
                AGVLog.WriteError(forkLiftWrapper.getForkLift().forklift_number + "号车 连接错误", new StackFrame(true));
                AGVMessage message = new AGVMessage();
                message.setMessageType(AGVMessageHandler_TYPE_T.AGVMessageHandler_NET_ERR);
                message.setMessageStr(forkLiftWrapper.getForkLift().forklift_number + "号车 连接错误");

                AGVMessageHandler.getMessageHandler().setMessage(message);
            }
        }
Ejemplo n.º 30
0
        static void Main()
        {
            AGVLog agvLog = new AGVLog();

            //List<SingleTask> sList = new List<SingleTask>();
            agvLog.initAGVLog(); //初始化log

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            AGVInitialize.getInitialize().getLoginFrm().ShowDialog();

            //agvTask.startConnectForkLift(); //开始与车子建立连接
            //agvTask.startPLCRecv(); //开始采集PLC数据
            //agvTask.startToHandleTaskList(); //开始处理任务发送
            AGVInitialize.getInitialize().agvInit();
            AGVInitialize.getInitialize().getAGVTcpServer().StartAccept();

            AGVInitialize.getInitialize().getSchedule().startShedule();


            AGVInitialize.getInitialize().getAGVMessage().setUsbGreenLed();  //default green led
            AGVInitialize.getInitialize().getAGVMessage().StartHandleMessage();
            int i = 0;

            //while(i < 1)
            {
                i++;
                //AGVInitialize.getInitialize().getAGVCom().setDataCommand(LIFT_IN_COMMAND_T.LIFT_IN_COMMAND_UP);
            }
            AGVInitialize.getInitialize().getMainFrm().ShowDialog();
            //Application.Run(AGVInitialize.getInitialize().getMainFrm());

            //AGVTcpClient tcpClient = new AGVTcpClient();

            //Thread.Sleep(1000);


            //tcpClient.SendMessage("cmd=set task by name;name=abing;");

            //connectDB();
            //AGVInitialize init = AGVInitialize.getInitialize();
            //init.getAllForkLifts(false);

            //

            //while (!isExit) { Thread.Sleep(5); };
        }