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)); } }
public void PlayBeep() { //调用 while (keepBeep) { try { if (message.getMessageType() == AGVMessageHandler_TYPE_T.AGVMessageHandler_NET_ERR || message.getMessageType() == AGVMessageHandler_TYPE_T.AGVMessageHandler_SENDPAUSE_ERR || message.getMessageType() == AGVMessageHandler_TYPE_T.AGVMessageHandler_AGV_ALARM) { net_sp.Play(); } else if (message.getMessageType() == AGVMessageHandler_TYPE_T.AGVMessageHandler_LOWPOWER || message.getMessageType() == AGVMessageHandler_TYPE_T.AGVMEASAGE_LIFT_UPDOWN || message.getMessageType() == AGVMessageHandler_TYPE_T.AGVMessageHandler_LIFT_BUG) { lowpower_sp.Play(); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } Thread.Sleep(1000); } }
private void handleMessage() { while (!isStop) { Thread.Sleep(1000); if (message_next.getMessageType() == AGVMessageHandler_TYPE_T.AGVMessageHandler_MIN) { continue; } message.setMessageStr(message_next.getMessageStr()); message.setMessageType(message_next.getMessageType()); message_next.clear(); startBeep(message.getMessageType()); if (message.getMessageType() == AGVMessageHandler_TYPE_T.AGVMessageHandler_LOWPOWER) { FormController.getFormController().getMainFrm().setFrmEnable(false); DialogResult dr = MessageBox.Show(message.getMessageStr(), "低电量警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); if (dr == DialogResult.OK) { FormController.getFormController().getMainFrm().setFrmEnable(true); FormController.getFormController().getMainFrm().setWindowState(FormWindowState.Normal); clearBeep(); } } else if (message.getMessageType() == AGVMessageHandler_TYPE_T.AGVMEASAGE_LIFT_UPDOWN) { bool ddp = ScheduleFactory.getSchedule().getDownDeliverPeriod(); if (ddp) { AGVSystem.getSystem().setPause(SHEDULE_PAUSE_TYPE_T.SHEDULE_PAUSE_DOWN_WITH_START); //如果当前处于上货阶段,楼上楼下都有货,需要暂停楼下的车 } else { AGVSystem.getSystem().setPause(SHEDULE_PAUSE_TYPE_T.SHEDULE_PAUSE_UP_WITH_START); //如果当前处于下货阶段,楼上楼下都有货,需要暂停楼上的车 } DialogResult dr = MessageBox.Show(message.getMessageStr(), "升降机提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); if (dr == DialogResult.OK) { AGVSystem.getSystem().setPause(SHEDULE_PAUSE_TYPE_T.SHEDULE_PAUSE_TYPE_MIN); //解除楼上或楼下的暂停 clearBeep(); } } else if (message.getMessageType() == AGVMessageHandler_TYPE_T.AGVMessageHandler_LIFT_COM) { AGVSystem.getSystem().setPause(SHEDULE_PAUSE_TYPE_T.SHEDULE_PAUSE_SYSTEM_WITH_START); FormController.getFormController().getMainFrm().setFrmEnable(false); DialogResult dr = MessageBox.Show(message.getMessageStr(), "升降机错误", MessageBoxButtons.OK, MessageBoxIcon.Warning); if (dr == DialogResult.OK) { if (ElevatorFactory.getElevator().isNeed()) { ElevatorFactory.getElevator().reStart(); //重新启动升降机 PLC读取线程 } FormController.getFormController().getMainFrm().setFrmEnable(true); AGVSystem.getSystem().setPause(SHEDULE_PAUSE_TYPE_T.SHEDULE_PAUSE_TYPE_MIN); //解除系统暂停 clearBeep(); } } else if (message.getMessageType() == AGVMessageHandler_TYPE_T.AGVMessageHandler_LIFT_BUG) { AGVSystem.getSystem().setPause(SHEDULE_PAUSE_TYPE_T.SHEDULE_PAUSE_SYSTEM_WITH_START); FormController.getFormController().getMainFrm().setFrmEnable(false); DialogResult dr = MessageBox.Show(message.getMessageStr(), "升降机错误", MessageBoxButtons.OK, MessageBoxIcon.Warning); if (dr == DialogResult.OK) { //AGVInitialize.getInitialize().getAGVElevatorOperator().reStart(); //重新启动升降机 PLC读取线程 FormController.getFormController().getMainFrm().setFrmEnable(true); AGVSystem.getSystem().setPause(SHEDULE_PAUSE_TYPE_T.SHEDULE_PAUSE_TYPE_MIN); //解除系统暂停 clearBeep(); } } else if (message.getMessageType() == AGVMessageHandler_TYPE_T.AGVMessageHandler_NET_ERR) { AGVSystem.getSystem().setPause(SHEDULE_PAUSE_TYPE_T.SHEDULE_PAUSE_SYSTEM_WITH_START); DialogResult dr = MessageBox.Show(message.getMessageStr(), "网络异常", MessageBoxButtons.OK, MessageBoxIcon.Warning); //网络中断时,系统暂停 if (dr == DialogResult.OK) { AGVSystem.getSystem().setPause(SHEDULE_PAUSE_TYPE_T.SHEDULE_PAUSE_TYPE_MIN); clearBeep(); } } else if (message.getMessageType() == AGVMessageHandler_TYPE_T.AGVMessageHandler_SENDPAUSE_ERR) { AGVSystem.getSystem().setPause(SHEDULE_PAUSE_TYPE_T.SHEDULE_PAUSE_UP_WITHOUT_START); DialogResult dr = MessageBox.Show(message.getMessageStr(), "网络异常", MessageBoxButtons.OK, MessageBoxIcon.Warning); if (dr == DialogResult.OK) { AGVSystem.getSystem().setPause(SHEDULE_PAUSE_TYPE_T.SHEDULE_PAUSE_TYPE_MIN); //清除楼上暂停的标志,但是车子暂停不会解除 clearBeep(); } } else if (message.getMessageType() == AGVMessageHandler_TYPE_T.AGVMessageHandler_AGV_ALARM) //检测到防撞信号,暂停所有AGV { AGVSystem.getSystem().setPause(SHEDULE_PAUSE_TYPE_T.SHEDULE_PAUSE_SYSTEM_WITH_START); //DialogResult dr = MessageBox.Show(message.getMessageStr(), "防撞提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); //if (dr == DialogResult.OK) { AGVSystem.getSystem().setPause(SHEDULE_PAUSE_TYPE_T.SHEDULE_PAUSE_TYPE_MIN); //清除楼上暂停的标志,但是车子暂停不会解除 clearBeep(); //} } message.clear(); //清除消息 } }