Beispiel #1
0
        /// <summary>
        /// 发送任务
        /// </summary>
        /// <param name="tr"></param>
        /// <param name="fl"></param>
        public int sendTask(TaskRecord tr, ForkLift fl)
        {
            string cmd = null;

            int result = 0;

            Console.WriteLine("ready to send task: " + tr.singleTask.taskName + "forklist stat:" + fl.taskStep + "forklift finished:" + fl.finishStatus);
            cmd = "cmd=set task by name;name=" + tr.taskRecordName; //发送命令格式,如果有多个对应值用;隔开,如果后面没有命令了,不需要再加;号
            Console.WriteLine("send msg :" + cmd + "to " + fl.forklift_number);

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

                    tr.taskRecordStat      = TASKSTAT_T.TASK_SEND;
                    tr.singleTask.taskStat = TASKSTAT_T.TASK_SEND;
                    AGVInitialize.getInitialize().getMainFrm().updateFrm(); //设置更新界面
                    tr.forkLift    = fl;
                    fl.taskStep    = ForkLift.TASK_STEP.TASK_SENDED;
                    fl.currentTask = tr.singleTask.taskText;
                    AGVInitialize.getInitialize().getDBConnect().UpdateTaskRecord(tr);
                    AGVInitialize.getInitialize().getDBConnect().updateForkLift(fl);  //更新车子状态
                }catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                    AGVLog.WriteError("发送" + tr.singleTask.taskText + " 任务到" + fl.forklift_number + "号车 失败", new StackFrame(true));
                    result = -1;
                }
            }

            AGVLog.WriteError("发送" + tr.singleTask.taskText + " 任务到" + fl.forklift_number + "号车 成功", new StackFrame(true));
            return(result);
        }