/// <summary>
        /// Runs a number of single extractions from the IP camera
        /// Times the change to Bitmap and count of the pixels for
        /// These images
        /// </summary>
        public void RunBenchmarking(string logfile)
        {
            //extract the images
            List<String> saveLocations = new List<string>();
            string url = "http://192.168.0.2/axis-cgi/mjpg/video.cgi?resolution=";

            List<String[]> resolutions = ReturnResolutions();

            for(int i = 0; i < resolutions.Count; i++)
            {
                string actualurl = url + resolutions[i][0] + "x" + resolutions[i][1];

                //set up the extractor
                ImageExtractor imageExtractor = new ImageExtractor(actualurl, "root", "root");

                //set up the save file object
                ImageSaver imageSaver = new ImageSaver(0, 1);
                saveLocations.Add(imageSaver.CaptureDirectory);

                //create the validator 
                ImageValidator imageValidator = new ImageValidator();
                imageValidator.ListenForImages(imageExtractor);
                imageValidator.imageValidated += new ImageValidator.ImageValidatedEvent(imageSaver.ImageCreatedAsync);//subscribe to events from the validator

                imageExtractor.Run(true);

                System.Threading.Thread.Sleep(5000); //wait 5 seconds to let the async requests complete
            }

            //do the analysis
            for(int i = 0; i < saveLocations.Count; i++)
            {
                string header = resolutions[i][0] + "x" + resolutions[i][1];
                Console.WriteLine(Environment.NewLine + resolutions[i][0] + "x" + resolutions[i][1]);
                JPEG jpeg = new JPEG(saveLocations[i] + @"\1\test_0.jpg");

                string msToBitmap = MsToBitmap(jpeg).ToString();
                string msToBitmapAndSumPixels = MsToBitmapAndSumPixels(jpeg).ToString();
                string totalPixels = TotalPixels(jpeg).ToString();

                Console.WriteLine(msToBitmap);
                Console.WriteLine(msToBitmapAndSumPixels);
                Console.WriteLine(totalPixels);

                using (System.IO.StreamWriter file = new System.IO.StreamWriter(logfile, true))
                {
                    file.WriteLine(header);
                    file.WriteLine(msToBitmap);
                    file.WriteLine(msToBitmapAndSumPixels);
                    file.WriteLine(totalPixels);
                    file.WriteLine("------------------------------");
                }

            }

        }//RunBenchmarking
        public void TestAddCapture()
        {
            ImageSaver imageSaver = new ImageSaver(@"d:\motion", "movement", 0);

            ICaptureDb db = new CaptureDb(ConfigurationManager.ConnectionStrings["LOCALDB"].ConnectionString);
            db.CreateCaptureSession(imageSaver.captureId, imageSaver.SaveDirectory);
            Assert.IsTrue(db.CaptureIdExists(imageSaver.captureId));

            Exception ex = null;
            try
            {
                db.CreateCaptureSession(imageSaver.captureId, imageSaver.SaveDirectory);
            }
            catch(Exception exc)
            {
                ex = exc;
            }

            Assert.IsNotNull(ex);

        }
Example #3
0
        /// <summary>
        /// Records a number of live captures across a range of time periods, and saves to the 
        /// capture database. Later used for lag testing.
        /// </summary>
        static void CreateTimedTests()
        {
            //1 to 20 minutes
            for(int i = 1; i < 21; i++)
            {
                Write("Setting up " + i + " minute test");
                //set up the extractor
                ImageExtractor imageExtractor = new ImageExtractor(url, username, password);

                //set up the save file object
                imageSaver = new ImageSaver(0, 1);
                imageExtractor.imageCreated += new ImageExtractor.ImageCreatedEvent(imageSaver.ImageCreatedAsync);
                imageExtractor.framerateBroadcast += new ImageExtractor.FramerateBroadcastEvent(FramerateBroadcastEventHandler);

                imageExtractor.Run(i);

                CaptureDbTest db = new CaptureDbTest(ConfigurationManager.ConnectionStrings["LOCALDB"].ConnectionString);
                db.AddTimedCapture(imageSaver.captureId, i);
            
            }
            
        }
        public void DirectoryCreation()
        {
            ImageSaver saver = new ImageSaver(1);
            Assert.IsTrue(Directory.Exists(saver.CaptureDirectory));

        }