Example #1
0
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main(string[] args)
        {
            Logger.Init("Log.config", "HomeSecureServiceClient");
            Logger.Info("HomeSecure Service Client Started");

            Dictionary<string, string> emailParams = new Dictionary<string, string>();
            emailParams.Add("Host", ConfigurationManager.AppSettings["emailHost"]);
            emailParams.Add("Port", ConfigurationManager.AppSettings["emailPort"]);
            emailParams.Add("From", ConfigurationManager.AppSettings["emailFrom"]);
            emailParams.Add("To", ConfigurationManager.AppSettings["emailTo"]);
            emailParams.Add("Subject", ConfigurationManager.AppSettings["emailSubject"]);
            emailParams.Add("UserName", ConfigurationManager.AppSettings["emailUserName"]);
            emailParams.Add("Password", ConfigurationManager.AppSettings["emailPassword"]);

            _emailSubscriber = new EmailSecurityEventSubscriber();
            //_emailSubscriber.InitParams(emailParams);

            _emailSubscriber = new TimeoutFilter(_emailSubscriber, Int32.Parse(ConfigurationManager.AppSettings["emailTimeBetweenMailsSeconds"]));

            if ((args.Length > 0) && (args[0] == "/console"))
            {
                CameraDevice camera = CameraDeviceFactory.DetectCameraDeviceHardware();

                CameraMotionDetector motionDetector = new CameraMotionDetector(camera);
                motionDetector.MotionDetected += new EventHandler<MotionDetectedEventArgs>(motionDetector_MotionDetected);

                camera.StartVideo();
                Thread.Sleep(Int32.Parse(ConfigurationManager.AppSettings["timeToWaitBeforeStartDetectionSeconds"])*1000);
                Logger.Info("Start detecting");
                motionDetector.StartDetection();

            }
            else
            {
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[]
                {
                    new Service1()
                };
                ServiceBase.Run(ServicesToRun);
            }
        }
Example #2
0
 public TimeoutFilter(SecurityEventSubscriber realNotification, int totalSecondsBetweenAlerts = 5)
 {
     _totalSecondsBetweenAlerts = totalSecondsBetweenAlerts;
     _realNotification = realNotification;
     _mapInputDeviceIDToLastNotificationTime = new Dictionary<string, DateTime>();
 }
 public void AddSecurityEventSubscriber(SecurityEventSubscriber subscriber)
 {
     _notifications.Add(subscriber);
 }