public String timeStamp; | public String timeStamp; | ||||
public String detectionType; | public String detectionType; | ||||
public float detectedValue; | public float detectedValue; | ||||
public String detectorID; | |||||
public boolean detectionState; | |||||
//public String detectorID; | |||||
public DetectionReport(String detectorID, String detectionType, float detectedAmplitude) { | |||||
public DetectionReport(boolean detectionState, String detectionType, float detectedAmplitude) { | |||||
this.timeStamp = String.valueOf(Calendar.getInstance().getTime()); | this.timeStamp = String.valueOf(Calendar.getInstance().getTime()); | ||||
this.detectionType = detectionType; | this.detectionType = detectionType; | ||||
this.detectedValue = detectedAmplitude; | this.detectedValue = detectedAmplitude; | ||||
this.detectorID = detectorID; | |||||
this.detectionState = detectionState; | |||||
//this.detectorID = detectorID; | |||||
} | } | ||||
String time = "Time: " + "[" + this.timeStamp + "]"; | String time = "Time: " + "[" + this.timeStamp + "]"; | ||||
String type = "Type: " + "[" + this.detectionType + "]"; | String type = "Type: " + "[" + this.detectionType + "]"; | ||||
String value = "Value: " + "[" + this.detectedValue + "]"; | String value = "Value: " + "[" + this.detectedValue + "]"; | ||||
String id = "ID: " + "[" + this.detectorID + "]"; | |||||
//String id = "ID: " + "[" + this.detectorID + "]"; | |||||
return String.join("\t", time, type, value, id); | |||||
return String.join("\t", time, type, value); | |||||
} | } | ||||
/** Debug Report */ | /** Debug Report */ |
/** Triggers onDetectionListener - call this to trigger violation/alarm */ | /** Triggers onDetectionListener - call this to trigger violation/alarm */ | ||||
public void reportViolation(String detectorID, String detectionType, float amplitude) { | |||||
public void reportViolation(String detectionType, float amplitude) { | |||||
if (listener != null) { | if (listener != null) { | ||||
DetectionReport detectionReport = new DetectionReport(detectorID, detectionType, amplitude); | |||||
DetectionReport detectionReport = new DetectionReport(true, detectionType, amplitude); | |||||
listener.onDetection(detectionReport); | listener.onDetection(detectionReport); | ||||
} else { | } else { | ||||
throw new IllegalStateException("No listener set for violation reporting"); | throw new IllegalStateException("No listener set for violation reporting"); | ||||
} | } | ||||
} | } | ||||
/** Starts Detection (abstract method: needs to be overridden in child class) */ | /** Starts Detection (abstract method: needs to be overridden in child class) */ | ||||
public abstract void startDetection(); | public abstract void startDetection(); | ||||
private int frameCnt = 0; | private int frameCnt = 0; | ||||
// Parameters | // Parameters | ||||
private static final float PIXEL_THRESHOLD = 30f; // Luminosity (brightness channel of YUV_420_888) | private static final float PIXEL_THRESHOLD = 30f; // Luminosity (brightness channel of YUV_420_888) | ||||
private static final int BLUR_KERNEL_SIZE = 5; | private static final int BLUR_KERNEL_SIZE = 5; |