You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
1.8 KiB

/**
* 智能摄像头类
* 实现了Monitored和Alarmable接口
*/
public class SmartCamera implements Monitored, Alarmable {
private String name;
private boolean monitoring;
private boolean alarmTriggered;
public SmartCamera(String name) {
this.name = name;
this.monitoring = false;
this.alarmTriggered = false;
}
@Override
public void startMonitoring() {
if (!monitoring) {
monitoring = true;
System.out.println(name + " 摄像头开始监控");
} else {
System.out.println(name + " 摄像头已经在监控中");
}
}
@Override
public void stopMonitoring() {
if (monitoring) {
monitoring = false;
System.out.println(name + " 摄像头停止监控");
} else {
System.out.println(name + " 摄像头已经停止监控");
}
}
@Override
public String getMonitoringStatus() {
return name + " 摄像头监控状态: " + (monitoring ? "正在监控" : "未监控");
}
@Override
public void triggerAlarm() {
if (!alarmTriggered) {
alarmTriggered = true;
System.out.println(name + " 摄像头警报已触发!");
}
}
@Override
public void silenceAlarm() {
if (alarmTriggered) {
alarmTriggered = false;
System.out.println(name + " 摄像头警报已解除");
}
}
@Override
public boolean isAlarmTriggered() {
return alarmTriggered;
}
/**
* 检测运动
*/
public void detectMotion() {
if (monitoring) {
System.out.println(name + " 摄像头检测到运动!");
triggerAlarm();
}
}
}