Пример #1
0
        public static void rigInfoPopulateForCam(string profileName, string webcam)
        {
            ConnectedCamera selectedCamera = CameraRig.ConnectedCameras.Where(x => x.cameraName == webcam).FirstOrDefault();

            selectedCamera.friendlyName            = (string)(CameraRig.rigInfoGet(profileName, webcam, infoEnum.friendlyName));
            selectedCamera.cam.areaDetection       = (bool)(CameraRig.rigInfoGet(profileName, webcam, infoEnum.areaDetection));
            selectedCamera.cam.areaDetectionWithin = (bool)(CameraRig.rigInfoGet(profileName, webcam, infoEnum.areaDetectionWithin));
        }
Пример #2
0
 public static void rigInfoPopulateForCam(string profileName, string webcam)
 {
     foreach (rigItem item in CameraRig.rig)
     {
         if (item.cameraName == webcam)
         {
             item.friendlyName            = (string)(CameraRig.rigInfoGet(profileName, webcam, infoEnum.friendlyName));
             item.cam.areaDetection       = (bool)(CameraRig.rigInfoGet(profileName, webcam, infoEnum.areaDetection));
             item.cam.areaDetectionWithin = (bool)(CameraRig.rigInfoGet(profileName, webcam, infoEnum.areaDetectionWithin));
         }
     }
 }
Пример #3
0
        private void cameraSwitch(int button, bool load)
        {
            currentlySelectedButton = button;

            //int camId = CameraRig.idFromButton(button);
            int camId = CameraRig.idxFromButton(button);


            if (load || !load && camClick(button))
            {
                if (load || !load && CameraRig.cameraExists(camId))
                {
                    selectedWebcam      = CameraRig.ConnectedCameras[camId].cameraName;
                    CameraRig.ConfigCam = camId;
                    CameraRig.getCam(camId).MotionDetector.Reset();

                    camName.Text            = (string)CameraRig.rigInfoGet(bubble.profileInUse, selectedWebcam, CameraRig.infoEnum.friendlyName);
                    drawModeOn.Checked      = false;
                    drawModeOff.Checked     = true;
                    txtMov.Text             = Convert.ToString((double)(CameraRig.rigInfoGet(bubble.profileInUse, selectedWebcam, CameraRig.infoEnum.movementVal)) * 100);
                    radioButton4.Checked    = (bool)(CameraRig.rigInfoGet(bubble.profileInUse, selectedWebcam, CameraRig.infoEnum.areaDetection));
                    radioButton3.Checked    = !radioButton4.Checked;
                    areaOffAtMotion.Checked = (bool)(CameraRig.rigInfoGet(bubble.profileInUse, selectedWebcam, CameraRig.infoEnum.areaOffAtMotion));
                    radioButton8.Checked    = false;
                    radioButton7.Checked    = true;
                    radioButton1.Checked    = (bool)(CameraRig.rigInfoGet(bubble.profileInUse, selectedWebcam, CameraRig.infoEnum.areaDetectionWithin));
                    radioButton2.Checked    = !radioButton1.Checked;


                    trkTimeSpike.Value      = (int)(CameraRig.rigInfoGet(bubble.profileInUse, selectedWebcam, CameraRig.infoEnum.timeSpike));
                    trkToleranceSpike.Value = (int)(CameraRig.rigInfoGet(bubble.profileInUse, selectedWebcam, CameraRig.infoEnum.toleranceSpike));
                    rdSpikeOn.Checked       = (bool)(CameraRig.rigInfoGet(bubble.profileInUse, selectedWebcam, CameraRig.infoEnum.lightSpike));
                    lblTimeSpike.Text       = trkTimeSpike.Value.ToString();
                    lblToleranceSpike.Text  = trkToleranceSpike.Value.ToString() + "%";

                    cameraWindow.Camera = null;
                    cameraWindow.Camera = CameraRig.getCam(camId); //CameraRig.rig[0].cam;

                    CameraRig.getCam(camId).motionLevelEvent -= new motionLevelEventHandler(drawLevel);
                    CameraRig.getCam(camId).motionLevelEvent += new motionLevelEventHandler(drawLevel);

                    camButtonSetColours();
                    //camControl(button);
                }
            }
        }
Пример #4
0
        private void cameraSwitch(int button, bool load)
        {
            //int camId = CameraRig.idFromButton(button);
            int camId = CameraRig.idxFromButton(button);


            if (load || !load && camButtons.camClick(button))
            {
                if (load || !load && CameraRig.cameraExists(camId))
                {
                    selectedWebcam    = CameraRig.rig[camId].cameraName;
                    CameraRig.drawCam = camId;
                    CameraRig.getCam(camId).MotionDetector.Reset();

                    camName.Text            = (string)CameraRig.rigInfoGet(bubble.profileInUse, selectedWebcam, "friendlyName");
                    drawModeOn.Checked      = false;
                    drawModeOff.Checked     = true;
                    txtMov.Text             = Convert.ToString((double)(CameraRig.rigInfoGet(bubble.profileInUse, selectedWebcam, "movementVal")) * 100);
                    radioButton4.Checked    = (bool)(CameraRig.rigInfoGet(bubble.profileInUse, selectedWebcam, "areaDetection"));
                    radioButton3.Checked    = !radioButton4.Checked;
                    areaOffAtMotion.Checked = (bool)(CameraRig.rigInfoGet(bubble.profileInUse, selectedWebcam, "areaOffAtMotion"));
                    radioButton8.Checked    = false;
                    radioButton7.Checked    = true;
                    radioButton1.Checked    = (bool)(CameraRig.rigInfoGet(bubble.profileInUse, selectedWebcam, "areaDetectionWithin"));
                    radioButton2.Checked    = !radioButton1.Checked;

                    cameraWindow.Camera = null;
                    cameraWindow.Camera = CameraRig.getCam(camId); //CameraRig.rig[0].cam;

                    CameraRig.getCam(camId).motionLevelEvent -= new motionLevelEventHandler(drawLevel);
                    CameraRig.getCam(camId).motionLevelEvent += new motionLevelEventHandler(drawLevel);

                    camButtonSetColours();
                    //camControl(button);
                }
            }
        }
Пример #5
0
        private void take_ping_picture(object sender, System.EventArgs e)
        {
            haveTheFlag = true;


            string fName   = "pingPicture.jpg";
            Bitmap saveBmp = null;

            try
            {
                List <string> lst = new List <string>();

                if (config.getProfile(bubble.profileInUse).pingStatsStamp)
                {
                    statistics.movementResults stats = new statistics.movementResults();
                    stats = statistics.statsForCam(CameraRig.activeCam, bubble.profileInUse, "Ping");

                    lst.Add(stats.avgMvStart.ToString());
                    lst.Add(stats.avgMvLast.ToString());
                    lst.Add(stats.mvNow.ToString());
                    lst.Add(Convert.ToBoolean(CameraRig.rigInfoGet(bubble.profileInUse, CameraRig.rig[CameraRig.activeCam].cameraName, CameraRig.infoEnum.alarmActive)) ? "On" : "Off");
                    lst.Add(config.getProfile(bubble.profileInUse).pingInterval.ToString() + " Mins");
                }


                imageText stampArgs = new imageText();


                if (config.getProfile(bubble.profileInUse).pingAll)
                {
                    mosaic mos       = new mosaic();
                    int    imgHeight = 0;
                    int    imgWidth  = 0;

                    //set the height and width to the largest image
                    foreach (rigItem item in CameraRig.rig)
                    {
                        if (item.cam.pubFrame.Height > imgHeight || item.cam.pubFrame.Width > imgWidth)
                        {
                            imgHeight = item.cam.pubFrame.Height;
                            imgWidth  = item.cam.pubFrame.Width;
                        }
                    }


                    foreach (rigItem item in CameraRig.rig)
                    {
                        mos.addToList(bubble.resizeImage(item.cam.pubFrame, imgWidth, imgHeight));
                    }


                    stampArgs.bitmap = (Bitmap)mos.getMosaicBitmap(4).Clone();
                }
                else//if (config.getProfile(bubble.profileInUse).pingStatsStamp)
                {
                    stampArgs.bitmap = (Bitmap)camera.pubFrame.Clone();
                }



                stampArgs.type             = "Ping";
                stampArgs.backingRectangle = config.getProfile(bubble.profileInUse).pingTimeStampRect;
                stampArgs.stats            = lst;

                saveBmp = bubble.timeStampImage(stampArgs);

                ImageCodecInfo jgpEncoder = GetEncoder(ImageFormat.Jpeg);
                System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
                EncoderParameters myEncoderParameters    = new EncoderParameters(1);
                EncoderParameter  myEncoderParameter     = new EncoderParameter(myEncoder, config.getProfile(bubble.profileInUse).pingCompression);
                myEncoderParameters.Param[0] = myEncoderParameter;
                saveBmp.Save(bubble.tmpFolder + fName, jgpEncoder, myEncoderParameters);

                Bitmap thumb = bubble.GetThumb(saveBmp);
                thumb.Save(bubble.tmpFolder + bubble.tmbPrefix + fName, ImageFormat.Jpeg);

                saveBmp.Dispose();
                thumb.Dispose();
                bubble.logAddLine("Image saved: " + fName);
                //bubble.pingError = false;
                haveTheFlag = false;
            }
            catch (Exception)
            {
                haveTheFlag = false;
                //bubble.pingError = true;
                bubble.logAddLine("Error in saving image: " + fName);
            }
        }
Пример #6
0
        private void take_picture(object sender, System.EventArgs e)
        {
            haveTheFlag = true;


            string fName   = "pingPicture.jpg";
            Bitmap saveBmp = null;

            try
            {
                List <string> lst = new List <string>();

                if (config.getProfile(bubble.profileInUse).pingStatsStamp)
                {
                    statistics.movementResults stats = new statistics.movementResults();
                    stats = statistics.statsForCam(CameraRig.activeCam, bubble.profileInUse, "Ping");

                    lst.Add(stats.avgMvStart.ToString());
                    lst.Add(stats.avgMvLast.ToString());
                    lst.Add(stats.mvNow.ToString());
                    lst.Add(Convert.ToBoolean(CameraRig.rigInfoGet(bubble.profileInUse, CameraRig.rig[CameraRig.activeCam].cameraName, "alarmActive")) ? "On" : "Off");
                    lst.Add(config.getProfile(bubble.profileInUse).pingInterval.ToString() + " Mins");
                }

                imageText stampArgs = new imageText();
                stampArgs.bitmap           = (Bitmap)camera.pubFrame.Clone();
                stampArgs.type             = "Ping";
                stampArgs.backingRectangle = config.getProfile(bubble.profileInUse).pingTimeStampRect;
                stampArgs.stats            = lst;

                //saveBmp = bubble.timeStampImage((Bitmap)CameraRig.rig[CameraRig.activeCam].cam.pubFrame.Clone(), "Ping");
                //saveBmp = bubble.timeStampImage((Bitmap)camera.pubFrame.Clone(), "Ping", config.getProfile(bubble.profileInUse).pingTimeStampRect);
                saveBmp = bubble.timeStampImage(stampArgs);

                //specify jpeg compression
                //ImageCodecInfo jgpEncoder = GetEncoder(ImageFormat.Jpeg);
                //System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
                //EncoderParameters myEncoderParameters = new EncoderParameters(1);
                //EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 50L);
                //myEncoderParameters.Param[0] = myEncoderParameter;
                //// Save the bitmap as a JPG file with 50 quality level compression.
                ////0 is greatest compression, 100 is least compression
                //saveBmp.Save(bubble.tmpFolder + fName, jgpEncoder, myEncoderParameters);

                ImageCodecInfo jgpEncoder = GetEncoder(ImageFormat.Jpeg);
                System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
                EncoderParameters myEncoderParameters    = new EncoderParameters(1);
                EncoderParameter  myEncoderParameter     = new EncoderParameter(myEncoder, config.getProfile(bubble.profileInUse).pingCompression);
                myEncoderParameters.Param[0] = myEncoderParameter;
                saveBmp.Save(bubble.tmpFolder + fName, jgpEncoder, myEncoderParameters);


                //saveBmp.Save(bubble.tmpFolder + fName, ImageFormat.Jpeg);
                Bitmap thumb = bubble.GetThumb(saveBmp);
                thumb.Save(bubble.tmpFolder + bubble.tmbPrefix + fName, ImageFormat.Jpeg);

                saveBmp.Dispose();
                thumb.Dispose();
                bubble.logAddLine("Image saved: " + fName);
                bubble.pingError = false;
                haveTheFlag      = false;
                //old code 20091226
                //camera.pubFrame.Save(bubble.imageFolder + fName, ImageFormat.Jpeg);
                //old code 20091226
            }
            catch (Exception)
            {
                haveTheFlag      = false;
                bubble.pingError = true;
                bubble.logAddLine("Error in saving image: " + fName);
            }
        }