Exemple #1
0
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.UnhandledException += CurrentDomainUnhandledException;

            CameraInfo camera1 = new CameraInfo("TEST1", "172.31.108.248", 8000, "admin", "1234Qwer");

            try
            {
                var task = Task.Factory.StartNew(() =>
                {
                    //1、启动
                    faceDetectAlarm.Initial(null, 0.6);

                    //2、登录摄像机
                    int irc = faceDetectAlarm.LoginCamera(camera1);
                    if (irc <= 0)
                    {
                        Debug.Print("LOGIN ERROR");
                        return;
                    }

                    //3、启动布防
                    faceDetectAlarm.StartAlarm();

                    faceDetectAlarm.NoticeFaceSnapEvent += delegate(string strSnapTime, string strDevIP, string strFilePath, Rectangle rectFace)
                    {
                        Debug.Print(strSnapTime + "," + strDevIP + "," + strFilePath);
                        Console.WriteLine(strSnapTime + "," + strDevIP + "," + strFilePath + "," + rectFace.ToString());
                    };

                    //4、启动监听
                    faceDetectAlarm.StartListen(PortHelper.GetFirstAvailablePort());
                });

                Thread.Sleep(1000);

                ConsoleCtrlDelegate newDategate = HandlerRoutine;
                var re = SetConsoleCtrlHandler(newDategate, true);
                if (!re)
                {
                    Console.WriteLine("Set SetConsoleCtrlHandler Error! ");
                }

                // Request cancellation from the UI thread.
                if (Console.ReadKey().KeyChar == 'c')
                {
                    HandlerRoutine(CTRL_CLOSE_EVENT);
                }

                // Keep the console window open while the
                // task completes its output.
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Application Exception:" + ex.Message);
                Console.ForegroundColor = ConsoleColor.Black;
            }
        }
Exemple #2
0
        /// <summary>
        /// 解析数据
        /// 0,申请关闭服务
        /// 1,申请开启服务,带端口
        /// </summary>
        /// <param name="s"></param>
        public void Analysis(string s)
        {
            string[] r = s.Split(',');
            if (r[0] == "check")    //验证
            {
                if (r[1] != "1.0.1")
                {
                    ns.H_Send("fail,客户端版本过低 请更新版本");
                    connentHost.serverModels.FirstOrDefault(l => l.machineCode == r[5])?.DisClientConn();
                    machineCode = r[5];
                }
                else
                {
                    ns.H_Send("pass");
                }
            }
            else if (r[0] == "stop")    //申请关闭服务
            {
                DisClientConn();
            }
            else if (r[0] == "s_Start")    //申请开启服务
            {
                int  outPort = Convert.ToInt32(r[1]);
                bool b       = PortHelper.PortInUse(outPort);
                if (b)                                   //如果申请的端口正在使用
                {
                    ns.H_Send("s_PortOccupied," + r[4]); //拒绝
                }
                else
                {
                    ns.H_Send("s_PortAccess," + r[4]);   //同意
                    ConnentPort connentPort = new ConnentPort()
                    {
                        connentIP  = this,
                        InPort     = PortHelper.GetFirstAvailablePort(),
                        OutPort    = outPort,
                        ClientIP   = r[2],
                        ClientPort = Convert.ToInt32(r[3]),
                        ID         = r[4],
                    };
                    connentPort.Start();
                    connentPorts.Add(connentPort);
                }
            }

            else if (r[0] == "s_Stop")    //申请关闭服务
            {
                ConnentPort connentPort = connentPorts.FirstOrDefault(l => l.ID == r[1]);
                if (connentPort != null)
                {
                    connentPort.DisClientConn();
                    connentPorts.Remove(connentPort);
                }
            }
        }