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; } }
/// <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(); } }
/// <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(); } }