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