/*
* ControlSys
* 2010
* 门禁系统
*/
package DoorEstopSystem2;
public class ControlSys {
private Door door; // 门禁系统的电子门
private Computer computer; // 门禁系统的计算机
private InputEquip inputEquip; // 门禁系统的输入设备
private int ring; // 门铃,0为安静,1为鸣响
private int openSign; // 开门信号,由管理员按下按钮时产生,1为开启信号
// private Logger logger; // 日志
/**
* 初始化
*/
public ControlSys(){
this.door = new Door();
this.computer = new Computer();
this.inputEquip = new InputEquip();
this.ring = 0;
this.openSign = 0;
// this.logger = Logger.getLogger(Admin.class.getName());
System.out.println("门禁系统的使用方法\n" +
" 1.模拟输入密码:以“pa”开头,后跟密码\n" +
" 2.模拟刷卡:以“ca”开头,后跟卡号\n" +
" 3.模拟取指纹:以“fi”开头,后跟表示指纹的字符串\n"+
" 4.模拟管理员按下开门按钮:输入“y”");
System.out.println("***************************************************");
System.out.println("门禁系统启动");
}
/**
* 门禁系统工作:检查设备状态,调度设备和记录日志
*/
public void work(){
/* 检查输入设备的输入缓存 */
if(inputEquip.getInput()!=null){
if(inputEquip.getInput().equals("exit")){
System.out.println("门禁系统关闭");
System.exit(0);
}
if(computer.validate(inputEquip.getInput())){
door.open(); // 开启电子门
System.out.println("<身份验证成功, "+inputEquip.getInput()+" 通过电子门>"); // 记录日志
inputEquip.setInput(null); // 清空输入设备缓存
} else {
System.out.println("身份验证失败"); // 记录日志
}
}
/* 检查开门信号 */
if(this.getOpenSign()==1){
door.open(); // 开启电子门
System.out.println("管理员开启了电子门"); // 记录日志
this.setOpenSign(0); // 电子门开门信号归零
}
/* 电子门开启状态将维持5秒后关闭 */
if(door.getState().equals(Door.OPEN)){
try {
Thread.sleep(5000); // 让电子门开启状态维持5秒
} catch (InterruptedException e) {
System.out.println(e.getMessage());
}
door.close(); // 关闭电子门
System.out.println("电子门关闭"); // 记录日志
}
}
/**
* @param ring 要设置的 ring
*/
public void ring() {
this.ring = 1;
}
/**
* @return computer
*/
public Computer getComputer() {
return computer;
}
/**
* @return door
*/
public Door getDoor() {
return door;
}
/**
* @return inputEquip
*/
public InputEquip getInputEquip() {
return inputEquip;
}
/**
* @return logger
*/
// public Logger getLogger() {
// return logger;
// }
/**
* @return ring
*/
public int getRing() {
return ring;
}
/**
* @param ring 要设置的 ring
*/
public void setRing(int ring) {
this.ring = ring;
}
/**
* @return openSign
*/
public int getOpenSign() {
return openSign;
}
/**
* @param openSign 要设置的 openSign
*/
public void setOpenSign(int openSign) {
this.openSign = openSign;
}
}

liliduguhan
- 粉丝: 6
最新资源
- 基于大数据下工程造价管理探究.docx
- 论GIS在环境管理及评价方面的应用.docx
- 第十二章第2讲基本算法语句.ppt
- JAVA课程方案设计书(周永新201190483).doc
- 计算机基础教学深度初探.docx
- 平面研究分析报告需要学哪些软件.doc
- 提高计算机通信网络可靠性的研究.docx
- 计算机应用软件要点问题的思考体会.docx
- CAD制图技术在机械工程中的开发与应用.docx
- 实验3:ucosII实时操作系统.doc
- MyEclipse内置的CVS客户端进行项目管理版本控制.doc
- Oracle数据字典.docx
- 基于项目教学法的初中计算机综合实践教学思考.docx
- Git高级技巧大全之深入实践基础教程
- 互联网+理财:应该选择量化、大数据还是AI?.docx
- 化工自动化及仪表之执行器培训.ppt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



评论1