*
* @return [void] None.
*/
- public void newCameraFrameAvailable(byte[] latestFrame, long timeStamp) {
+ //public void newCameraFrameAvailable(byte[] latestFrame, long timeStamp) {
+ public void newCameraFrameAvailable(CameraSmart _camera) {
BufferedImage img = null;
+ // Parse the byte array into a Buffered Image
+ byte[] newImg = _camera.getLatestFrame();
try {
- // Parse the byte array into a Buffered Image
//InputStream in = new ByteArrayInputStream(_camera.getLatestFrame());
- InputStream in = new ByteArrayInputStream(latestFrame);
+ //InputStream in = new ByteArrayInputStream(latestFrame);
+ InputStream in = new ByteArrayInputStream(newImg);
img = ImageIO.read(in);
} catch (RemoteException e) {
latestImage = img; // image into image buffer
// timestamp from camera into timestamp buffer
- long dateLong = timeStamp;
+ //long dateLong = timeStamp;
+ long dateLong = _camera.getTimestamp();
+ //System.out.println("dateLong: " + dateLong + " - newImage size: " + newImg.length);
possibleDate = new Date(dateLong);
imageWriteLock.unlock(); // Never forget to unlock
// calculate the percentage of the image that was in motion
double percentMotion = (countMotion / count) * 100.0;
+ System.out.println("countMotion: " + countMotion);
+ System.out.println("count: " + count);
+ System.out.println("Percent motion: " + percentMotion);
// Check if a high enough percentage of the image was in motion to say that there was motion in this frame of data
if (percentMotion > MOTION_DETECTED_THRESHOLD_PERCENTAGE) {
// Motion detected so save timestamp of this frame to another buffer
timestampWriteLock.lock();
- timestampOfLastMotion = (Date)tmpDate.clone(); // clone to a different buffer
+ timestampOfLastMotion = (Date)tmpDate.clone();// clone to a different buffer
timestampWriteLock.unlock();
System.out.println("Motion Detected (with percentage: " + Double.toString(percentMotion) + "%)");