Пример #1
0
        private void _updateFrm()
        {
            while (!isStop)
            {
                _updateAgvPanel();
                _updateSystemPause(); //如果设置系统暂停后,界面需要更新,用户不能再操作
                if (!isUpdateFrm)
                {
                    Thread.Sleep(1000);
                    continue;
                }
                lock (AGVInitialize.getInitialize().getLockTask())
                {
                    foreach (DictionaryEntry de in buttonStHash)
                    {
                        int        taskID = (int)de.Key;
                        TaskButton tb     = (TaskButton)de.Value;
                        //Console.WriteLine(" look task id = " + taskID);
                        TaskRecord tr = lookTaskRecordByTaskId(taskID);

                        tb.bindValue(tr);
                        if (tr != null)
                        {
                            if (tr.taskRecordStat == TASKSTAT_T.TASK_READY_SEND)
                            {
                                tb.BackColor = Color.LightGray;
                            }
                            else if (tr.taskRecordStat == TASKSTAT_T.TASK_SEND || tr.taskRecordStat == TASKSTAT_T.TASK_SEND_SUCCESS)
                            {
                                tb.BackColor = Color.LightGreen;
                            }
                        }
                        else
                        {
                            tb.BackColor = Color.White; //没有任务记录表示,任务执行完成或没有发送任务,颜色改为白色
                        }
                    }
                }
                isUpdateFrm = false;
            }
        }
Пример #2
0
        /// <summary>
        /// 移除任务记录
        /// </summary>
        /// <param name="taskRecordStat">任务状态</param>
        /// <param name="st">对应的任务ID</param>
        /// <param name="taskPalletType">托盘类型 默认托盘类型为0 表示忽略托盘类型这个条件</param>
        public void RemoveTaskRecord(TaskRecord tr)
        {
            string sql = "delete from taskrecord where taskRecordStat = " + (int)tr.taskRecordStat + " and forklift = " + tr.forkLift.id + " and singleTask = " + tr.singleTask.taskID;

            AGVLog.WriteInfo("RemoveTaskRecord 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();
            }
        }
Пример #3
0
        /// <summary>
        /// 插入任务记录
        /// </summary>
        /// <param name="taskRecordStat"></param>
        /// <param name="st"></param>
        public void InsertTaskRecord(TaskRecord tr)
        {
            string sql = "INSERT INTO `agv`.`taskrecord` (`taskRecordStat`, `singleTask`) VALUES ( " + (int)tr.taskRecordStat + ", " + tr.singleTask.taskID + ");";

            AGVLog.WriteInfo("InsertTaskRecord 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();
            }
        }