Esempio n. 1
0
        public ConfigurePSSMainForm()
        {
            InitializeComponent();

            try
            {
                this.Text = "First Evidence LPR Service Control, version " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();

                m_AppData        = new APPLICATION_DATA();
                m_AppData.Logger = new ErrorLog(m_AppData, true);
                m_Log            = (ErrorLog)m_AppData.Logger;

                SetConfigPath();

                m_AppData.AddOnClosing(Stop, APPLICATION_DATA.CLOSE_ORDER.LAST);

                m_ConfigWatchListsUC = new ConfigWatchListsUC.ConfigWatchListsUC(m_AppData);

                m_EmailServices         = new EmailServices(m_AppData);
                m_AppData.EmailServices = (object)m_EmailServices;
                m_EmailServices.StartThreads();

                m_ConfigureEmailUC = new ConfigureEmailUC.ConfigureEmailUC(m_AppData);

                m_ConfigureGPS_UC          = new ConfigureGPS_UC.ConfigureGPS_UC();
                m_ConfigureGPS_UC.AppData  = m_AppData;
                m_ConfigureGPS_UC.Location = new Point(50, 60);

                m_ConfigureSourceChannels = new ConfigureSourceChannels.ConfigSourceChannels(m_AppData);

                tabPageConfigureWatchLists.Controls.Add(m_ConfigWatchListsUC);
                tabPageConfigureEmail.Controls.Add(m_ConfigureEmailUC);
                tabPageConfigureGPS.Controls.Add(m_ConfigureGPS_UC);
                tabPageChannels.Controls.Add(m_ConfigureSourceChannels);

                this.FormClosing += new FormClosingEventHandler(ConfigurePSSMainForm_FormClosing);


                bool serviceInstalled = IsServiceInstalled();
                ServiceControllerStatus status;
                bool serviceRunning = IsServiceRunning(out status);

                SetServiceStatus(serviceRunning, serviceInstalled);


                m_CheckServiceStatusThread = new Thread(CheckServiceStatusLoop);
                m_CheckServiceStatusThread.Start();


                ////////////   remove unwanted pages

                // get rid of the password and activationt tabs

                tabControlMain.TabPages.Remove(tabPageEnterPasswords);
                tabControlMain.TabPages.Remove(tabPageActivation);


                //if ( ActivateLicense.IsActivated())
                //{
                //    tabControlMain.TabPages.Remove(tabPageActivation);
                //}
            }
            catch (Exception ex) { m_Log.Trace(ex, ErrorLog.LOG_TYPE.FATAL); }
        }
Esempio n. 2
0
        public void Start()
        {
            //////////////////////////////////////
            //
            // start error reporting lib  ( decides if local and/or remote reporting)

            m_AppData.Logger = new ErrorLog(m_AppData);

            m_Log = (ErrorLog)m_AppData.Logger;

            //////////////////////////////////////
            //
            // start email lib (used by error reporting lib for remote error notifications and by the watch list processor)

            m_AppData.EmailServices = new EmailServices(m_AppData);
            m_Email = (EmailServices)m_AppData.EmailServices;



            //////////////////////////////////////
            //
            // load the Frame Generator

            m_AppData.FrameGenerator = (object)new FrameGenerator(m_AppData);


            //////////////////////////////////////
            //
            // load the DVR

            m_DVR         = new DVR(m_AppData);
            m_AppData.DVR = (object)m_DVR;


            //////////////////////////////////////
            //
            // start the TCP Server
            m_RCServer = new RemoteConnectionServer.RemoteConnectionServer(m_AppData);

            //m_TCPServerThread = new Thread(TCPServer);
            //m_TCPServerThread.Start();


            //////////////////////////////////////
            //
            // load the LPR Engine

            m_LPREngine         = new LPREngine(m_AppData);
            m_AppData.LPREngine = m_LPREngine;

            //////////////////////////////////////
            //
            // load the Watch List Processor

            m_WatchList = new WatchLists(m_AppData);


            //  now that all modules are loaded, let them register with each other for event communications
            m_RCServer.StartRegistration();
            m_DVR.StartRegistration();
            m_LPREngine.StartRegistration();
            m_WatchList.StartRegistration();



            // now let all modules start their threads
            m_RCServer.StartThreads();
            m_DVR.StartThreads();
            m_LPREngine.StartThreads();
            m_WatchList.StartThreads();
            m_Email.StartThreads();

            // is everyone happy?
            if (!m_DVR.GetDVRReady || !((FrameGenerator)m_AppData.FrameGenerator).GetReadyStatus)
            {
                m_AppData.SelfDestruct();
            }
        }
Esempio n. 3
0
        public void Start(bool AsService)
        {
            try
            {
                m_AppData.RunninAsService = AsService;


                //////////////////////////////////////
                //
                // setup system wide health statistics

                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.System.System_Drive].StatString.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.System.System_frameGrabber_2].StatString.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.System.System_frameGrabber_1].StatString.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.System.System_GPS].StatString.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.System.System_Hotswap].StatString.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.System.System_Service].StatString.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.System.System_videoChannel1].StatString.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.System.System_videoChannel2].StatString.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.System.System_videoChannel3].StatString.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.System.System_videoChannel4].StatString.RegisterForUse(true);

                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.QueueOverruns.QueueOverruns_DVR_DirectyToStorageQ].Accumulator.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.QueueOverruns.QueueOverruns_DVR_MotionDetectedQ].Accumulator.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.QueueOverruns.QueueOverruns_DVR_NewFrameQ].Accumulator.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.QueueOverruns.QueueOverruns_DVR_NewLPRRecordQ].Accumulator.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.QueueOverruns.QueueOverruns_FG_AllFramesConsumerPushQ].Accumulator.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.QueueOverruns.QueueOverruns_FG_MotionDetectedConsumerPushQ].Accumulator.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.QueueOverruns.QueueOverruns_FG_MotionDetectionQ].Accumulator.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.QueueOverruns.QueueOverruns_LPR_LPRFinalPlateGroupOutputQ].Accumulator.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.QueueOverruns.QueueOverruns_LPR_LPRPerFrameReadingQ].Accumulator.RegisterForUse(true);
                m_AppData.HealthStatistics[(int)APPLICATION_DATA.HEALTH_STATISTICS.QueueOverruns.QueueOverruns_LPR_LPRProcessQ].Accumulator.RegisterForUse(true);


                //////////////////////////////////////
                //
                // start error reporting lib  ( decides if local and/or remote reporting)

                m_AppData.Logger = new ErrorLog(m_AppData);

                m_Log = (ErrorLog)m_AppData.Logger;

                m_Log.Log("Starting LPR Services", ErrorLog.LOG_TYPE.INFORMATIONAL);
                m_Log.Log("using file in path: " + UserSettings.GetAppPath(), ErrorLog.LOG_TYPE.INFORMATIONAL);

                //////////////////////////////////////
                //
                // start email lib (used by error reporting lib for remote error notifications and by the watch list processor)

                m_Log.Log("Loading Email module", ErrorLog.LOG_TYPE.INFORMATIONAL);

                m_AppData.EmailServices = new EmailServices(m_AppData);
                m_Email = (EmailServices)m_AppData.EmailServices;



                //////////////////////////////////////
                //
                // load the Frame Generator

                m_Log.Log("Loading Frame Generator module", ErrorLog.LOG_TYPE.INFORMATIONAL);
                m_AppData.FrameGenerator = (object)new FrameGenerator(m_AppData, AsService);


                //////////////////////////////////////
                //
                // load the DVR

                m_AppData.DVRMode = APPLICATION_DATA.DVR_MODE.STORE_ON_MOTION;
                m_Log.Log("Loading DVR module", ErrorLog.LOG_TYPE.INFORMATIONAL);
                m_DVR         = new DVR(m_AppData);
                m_AppData.DVR = (object)m_DVR;


                //////////////////////////////////////
                //
                // start the TCP Server
                if (m_AppData.RunninAsService)
                {
                    m_Log.Log("Loading TCP module", ErrorLog.LOG_TYPE.INFORMATIONAL);
                    m_RCServer = new RemoteConnectionServer.RemoteConnectionServer(m_AppData);
                }



                //////////////////////////////////////
                //
                // load the LPR Engine

                m_Log.Log("Loading LPR Engine", ErrorLog.LOG_TYPE.INFORMATIONAL);
                m_LPREngine         = new LPREngine(m_AppData);
                m_AppData.LPREngine = m_LPREngine;

                //////////////////////////////////////
                //
                // load the Watch List Processor

                m_Log.Log("Loading Watch List module", ErrorLog.LOG_TYPE.INFORMATIONAL);

                m_WatchList = new WatchLists(m_AppData);


                //  now that all modules are loaded, let them register with each other for event communications
                m_Log.Log("Starting registrations", ErrorLog.LOG_TYPE.INFORMATIONAL);
                if (m_AppData.RunninAsService)
                {
                    m_RCServer.StartRegistration();
                }
                m_DVR.StartRegistration();
                m_LPREngine.StartRegistration();
                m_WatchList.StartRegistration();



                // now let all modules start their threads
                if (m_AppData.RunninAsService)
                {
                    m_Log.Log("Starting TCP Server", ErrorLog.LOG_TYPE.INFORMATIONAL);
                    m_RCServer.StartThreads();
                }

                m_Log.Log("Starting DVR", ErrorLog.LOG_TYPE.INFORMATIONAL);
                m_DVR.StartThreads();

                m_Log.Log("Starting LPR Engine", ErrorLog.LOG_TYPE.INFORMATIONAL);
                m_LPREngine.StartThreads();

                m_Log.Log("Starting Watch list processor", ErrorLog.LOG_TYPE.INFORMATIONAL);
                m_WatchList.StartThreads();

                m_Log.Log("Starting Email Services", ErrorLog.LOG_TYPE.INFORMATIONAL);
                m_Email.StartThreads();

                // is everyone happy?
                //if (!m_DVR.GetDVRReady || !((FrameGenerator)m_AppData.FrameGenerator).GetReadyStatus)
                //{
                //    m_Log.Log("Error, self destruct", ErrorLog.LOG_TYPE.FATAL);
                //    m_AppData.SelfDestruct();
                //}
            }
            catch (Exception ex) { m_Log.Trace(ex, ErrorLog.LOG_TYPE.FATAL); }
        }