Reverting back the first benchmark (now works with less threads); synchronization...
authorrtrimana <rtrimana@uci.edu>
Wed, 22 Feb 2017 17:13:19 +0000 (09:13 -0800)
committerrtrimana <rtrimana@uci.edu>
Wed, 22 Feb 2017 17:13:19 +0000 (09:13 -0800)
benchmarks/Java/SmartLightsController/CameraCallback_Skeleton.java
benchmarks/Java/SmartLightsController/MotionDetection.java
benchmarks/drivers/Java/AmcrestCamera/AmcrestCamera.java
benchmarks/drivers/Java/AmcrestCamera/CameraSmartCallback_Stub.java
benchmarks/interfaces/CameraCallback.java
benchmarks/interfaces/CameraSmartCallback.java

index 0e4b30d2245dd47195e6ed40cf734989c7cbd7bf..74103684ee37dbf06fca49e33f43a5510207ab06 100644 (file)
@@ -66,33 +66,15 @@ public class CameraCallback_Skeleton implements CameraCallback {
                return didAlreadyInitWaitInvoke.get();
        }
 
-       public void newCameraFrameAvailable(CameraSmart _camera) {
-               mainObj.newCameraFrameAvailable(_camera);
+       public void newCameraFrameAvailable(byte latestFrame[], long timeStamp) {
+               mainObj.newCameraFrameAvailable(latestFrame, timeStamp);
        }
 
        public void ___newCameraFrameAvailable() {
                byte[] localMethodBytes = methodBytes;
                rmiComm.setGetMethodBytes();
-               Object[] paramObj = rmiComm.getMethodParams(new Class<?>[] { int[].class }, new Class<?>[] { null }, localMethodBytes);
-               try {
-                       int[] stubIdArray0 = (int[]) paramObj[0];
-                       int objIdRecv0 = stubIdArray0[0];
-                       CameraSmart newStub0 = null;
-                       if(!IoTRMIUtil.mapStub.containsKey(objIdRecv0)) {
-                               newStub0 = new CameraSmart_Stub(rmiComm, objIdRecv0);
-                               IoTRMIUtil.mapStub.put(objIdRecv0, newStub0);
-                               rmiComm.setObjectIdCounter(objIdRecv0);
-                               rmiComm.decrementObjectIdCounter();
-                       }
-                       else {
-                               newStub0 = (CameraSmart_Stub) IoTRMIUtil.mapStub.get(objIdRecv0);
-                       }
-                       CameraSmart stub0 = newStub0;
-                       newCameraFrameAvailable(stub0);
-               } catch(Exception ex) {
-                       ex.printStackTrace();
-                       throw new Error("Exception from callback object instantiation!");
-               }
+               Object[] paramObj = rmiComm.getMethodParams(new Class<?>[] { byte[].class, long.class }, new Class<?>[] { null, null }, localMethodBytes);
+               newCameraFrameAvailable((byte[]) paramObj[0], (long) paramObj[1]);
        }
 
        public void ___waitRequestInvokeMethod() throws IOException {
@@ -123,7 +105,6 @@ public class CameraCallback_Skeleton implements CameraCallback {
                                                catch (Exception ex) {
                                                        ex.printStackTrace();
                                                }
-                                               //System.out.println("Thread done!");
                                        }
                                }.start();
                                break;
index 4aa0dc8810aeffa23a59016ea0fb90990385202b..3c9567f1e238a6d5e1471be2f971f01066332747 100644 (file)
@@ -257,16 +257,16 @@ class MotionDetection implements CameraCallback {
         *
         *   @return [void] None.
         */
-       //public void newCameraFrameAvailable(byte[] latestFrame, long timeStamp) {
-       public void newCameraFrameAvailable(CameraSmart _camera) {
+       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();
+               //byte[] newImg = _camera.getLatestFrame();
                try {
                        //InputStream in = new ByteArrayInputStream(_camera.getLatestFrame());
-                       //InputStream in = new ByteArrayInputStream(latestFrame);
-                       InputStream in = new ByteArrayInputStream(newImg);
+                       //InputStream in = new ByteArrayInputStream(newImg);
+                       // Parse the byte array into a Buffered Image
+                       InputStream in = new ByteArrayInputStream(latestFrame);
                        img = ImageIO.read(in);
 
                } catch (RemoteException e) {
@@ -284,8 +284,8 @@ class MotionDetection implements CameraCallback {
                latestImage = img;              // image into image buffer
 
                // timestamp from camera into timestamp buffer
-               //long dateLong = timeStamp;
-               long dateLong = _camera.getTimestamp();
+               long dateLong = timeStamp;
+               //long dateLong = _camera.getTimestamp();
                //System.out.println("dateLong: " + dateLong + " - newImage size: " + newImg.length);
                possibleDate = new Date(dateLong);
 
@@ -372,9 +372,9 @@ class MotionDetection implements CameraCallback {
 
                // 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);
+               //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) {
index 7d2bb47900b4e57aac5b2327e70a9d0c7986acaf..ffa92d06d8b55439e903a4612eab1473e64e5bd3 100644 (file)
@@ -464,8 +464,8 @@ public class AmcrestCamera implements Camera {
 
                                for (CameraSmartCallback c : callbackList) {
 
-                                       //c.newCameraFrameAvailable(this.getLatestFrame(), this.getTimestamp());
-                                       c.newCameraFrameAvailable(this);
+                                       c.newCameraFrameAvailable(this.getLatestFrame(), this.getTimestamp());
+                                       //c.newCameraFrameAvailable(this);
                                }
                        } else {
 
index f5270a2c73fb43a5d39a2250a012780c3c180ecb..0610f84c98d85ffa40eca060d20c690dae47c6ba 100644 (file)
@@ -36,43 +36,11 @@ public class CameraSmartCallback_Stub implements CameraSmartCallback {
                objectId = _objectId;
        }
 
-       public void newCameraFrameAvailable(Camera _camera) {
-               int[] objIdSent0 = new int[1];
-               try {
-                       if (!IoTRMIUtil.mapSkel.containsKey(_camera)) {
-                               int newObjIdSent = rmiComm.getObjectIdCounter();
-                               objIdSent0[0] = newObjIdSent;
-                               rmiComm.decrementObjectIdCounter();
-                               Camera_Skeleton skel0 = new Camera_Skeleton(_camera, rmiComm, newObjIdSent);
-                               IoTRMIUtil.mapSkel.put(_camera, skel0);
-                               IoTRMIUtil.mapSkelId.put(_camera, newObjIdSent);
-                               Thread thread = new Thread() {
-                                       public void run() {
-                                               try {
-                                                       skel0.___waitRequestInvokeMethod();
-                                                       } catch (Exception ex) {
-                                                       ex.printStackTrace();
-                                                       throw new Error("Exception when trying to run ___waitRequestInvokeMethod() for Camera_Skeleton!");
-                                               }
-                                       }
-                               };
-                               thread.start();
-                               while(!skel0.didAlreadyInitWaitInvoke());
-                       }
-                       else
-                       {
-                               int newObjIdSent = IoTRMIUtil.mapSkelId.get(_camera);
-                               objIdSent0[0] = newObjIdSent;
-                       }
-               } catch (Exception ex) {
-                       ex.printStackTrace();
-                       throw new Error("Exception when generating skeleton objects!");
-               }
-
+       public void newCameraFrameAvailable(byte latestFrame[], long timeStamp) {
                int methodId = 0;
                Class<?> retType = void.class;
-               Class<?>[] paramCls = new Class<?>[] { int[].class };
-               Object[] paramObj = new Object[] { objIdSent0 };
+               Class<?>[] paramCls = new Class<?>[] { byte[].class, long.class };
+               Object[] paramObj = new Object[] { latestFrame, timeStamp };
                rmiComm.remoteCall(objectId, methodId, paramCls, paramObj);
        }
 
index d7b225cfdaf1d6cb2b417fb2cd2e2ab29618ce8b..5d5377de40ec952c903a6d21a912473238fcbb0d 100644 (file)
@@ -1,6 +1,6 @@
 package iotcode.interfaces;
 
 public interface CameraCallback {
-       //public void newCameraFrameAvailable(byte latestFrame[], long timeStamp);
-       public void newCameraFrameAvailable(CameraSmart _camera);
+       public void newCameraFrameAvailable(byte latestFrame[], long timeStamp);
+       //public void newCameraFrameAvailable(CameraSmart _camera);
 }
index 1f10ecb4a05b1e003a5a5a8f8b007cf8ea539d8b..3c78a7bea59e775df712130aba4b6f0e63eeb472 100644 (file)
@@ -2,6 +2,6 @@ package iotcode.interfaces;
 
 public interface CameraSmartCallback {
 
-       //public void newCameraFrameAvailable(byte latestFrame[], long timeStamp);
-       public void newCameraFrameAvailable(Camera _camera);
+       public void newCameraFrameAvailable(byte latestFrame[], long timeStamp);
+       //public void newCameraFrameAvailable(Camera _camera);
 }