Example #1
0
        private void ProcessCommAlarm_ITSPlate(ref CHCNetSDK.NET_DVR_ALARMER pAlarmer, IntPtr pAlarmInfo, uint dwBufLen, IntPtr pUser, string commType)
        {
            CHCNetSDK.NET_ITS_PLATE_RESULT struITSPlateResult = new CHCNetSDK.NET_ITS_PLATE_RESULT();
            uint dwSize = (uint)Marshal.SizeOf(struITSPlateResult);

            struITSPlateResult = (CHCNetSDK.NET_ITS_PLATE_RESULT)Marshal.PtrToStructure(pAlarmInfo, typeof(CHCNetSDK.NET_ITS_PLATE_RESULT));

            //报警设备IP地址
            string strIP = pAlarmer.sDeviceIP;

            //保存抓拍图片
            for (int i = 0; i < struITSPlateResult.dwPicNum; i++)
            {
                if (struITSPlateResult.struPicInfo[i].dwDataLen != 0)
                {
                    if (!Directory.Exists(m_OutputDir + strIP + "\\"))
                    {
                        Directory.CreateDirectory(m_OutputDir + strIP + "\\");
                    }

                    string     str  = m_OutputDir + strIP + "\\" + pAlarmer.lUserID + "_Pictype_" + struITSPlateResult.struPicInfo[i].byType + "_Num" + (i + 1) + ".jpg";
                    FileStream fs   = new FileStream(str, FileMode.Create);
                    int        iLen = (int)struITSPlateResult.struPicInfo[i].dwDataLen;
                    byte[]     by   = new byte[iLen];
                    Marshal.Copy(struITSPlateResult.struPicInfo[i].pBuffer, by, 0, iLen);
                    fs.Write(by, 0, iLen);
                    fs.Close();
                }
            }

            //抓拍时间:年月日时分秒
            string strTimeYear = string.Format("{0:D4}", struITSPlateResult.struSnapFirstPicTime.wYear) +
                                 string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.byMonth) +
                                 string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.byDay) + " "
                                 + string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.byHour) + ":"
                                 + string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.byMinute) + ":"
                                 + string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.bySecond) + ":"
                                 + string.Format("{0:D3}", struITSPlateResult.struSnapFirstPicTime.wMilliSec);

            //上传结果
            string stringAlarm = "抓拍上传," + "车牌:" + struITSPlateResult.struPlateInfo.sLicense + ",车辆序号:" + struITSPlateResult.struVehicleInfo.dwIndex;

            if (NoticeAlarmEvent != null)
            {
                //创建该控件的主线程直接更新信息列表
                string ccommType    = ObjectCopier.Clone <string>(commType);
                string cstrIP       = ObjectCopier.Clone <string>(strIP);
                string cstringAlarm = ObjectCopier.Clone <string>(stringAlarm);

                NoticeAlarmEvent(ccommType, DateTime.Now.ToString(), cstrIP, cstringAlarm);
            }
        }
Example #2
0
        private void ProcessCommAlarm_ITSPlate(ref CHCNetSDK.NET_DVR_ALARMER pAlarmer, IntPtr pAlarmInfo, uint dwBufLen, IntPtr pUser)
        {
            CHCNetSDK.NET_ITS_PLATE_RESULT struITSPlateResult = new CHCNetSDK.NET_ITS_PLATE_RESULT();
            uint dwSize = (uint)Marshal.SizeOf(struITSPlateResult);

            struITSPlateResult = (CHCNetSDK.NET_ITS_PLATE_RESULT)Marshal.PtrToStructure(pAlarmInfo, typeof(CHCNetSDK.NET_ITS_PLATE_RESULT));

            //保存抓拍图片
            //for (int i = 0; i < struITSPlateResult.dwPicNum; i++)
            //{
            //    if (struITSPlateResult.struPicInfo[i].dwDataLen != 0)
            //    {
            //        string str = "D:/UserID_" + pAlarmer.lUserID + "_Pictype_" + struITSPlateResult.struPicInfo[i].byType + "_Num" + (i + 1) + ".jpg";
            //        FileStream fs = new FileStream(str, FileMode.Create);
            //        int iLen = (int)struITSPlateResult.struPicInfo[i].dwDataLen;
            //        byte[] by = new byte[iLen];
            //        Marshal.Copy(struITSPlateResult.struPicInfo[i].pBuffer, by, 0, iLen);
            //        fs.Write(by, 0, iLen);
            //        fs.Close();
            //    }
            //}
            //报警设备IP地址
            string strIP = pAlarmer.sDeviceIP;

            //抓拍时间:年月日时分秒
            string strTimeYear = string.Format("{0:D4}", struITSPlateResult.struSnapFirstPicTime.wYear) +
                                 string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.byMonth) +
                                 string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.byDay) + " "
                                 + string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.byHour) + ":"
                                 + string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.byMinute) + ":"
                                 + string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.bySecond) + ":"
                                 + string.Format("{0:D3}", struITSPlateResult.struSnapFirstPicTime.wMilliSec);

            //上传结果
            //string stringAlarm = "抓拍上传," + "车牌:" + struITSPlateResult.struPlateInfo.sLicense + ",车辆序号:" + struITSPlateResult.struVehicleInfo.dwIndex;
            string stringAlarm = struITSPlateResult.struPlateInfo.sLicense;

            if (InvokeRequired)
            {
                object[] paras = new object[3];
                paras[0] = strTimeYear;//当前系统时间为:DateTime.Now.ToString();
                paras[1] = strIP;
                paras[2] = stringAlarm;
                lbl_chepaihao.BeginInvoke(new UpdateListBoxCallback(UpdateClientList), paras);
            }
            else
            {
                //创建该控件的主线程直接更新信息列表
                UpdateClientList(DateTime.Now.ToString(), strIP, stringAlarm);
            }
        }
Example #3
0
        private void ProcessCommAlarm_ITSPlate(ref CHCNetSDK.NET_DVR_ALARMER pAlarmer, IntPtr pAlarmInfo, uint dwBufLen, IntPtr pUser)
        {
            CHCNetSDK.NET_ITS_PLATE_RESULT struITSPlateResult = new CHCNetSDK.NET_ITS_PLATE_RESULT();
            uint dwSize = (uint)Marshal.SizeOf(struITSPlateResult);

            struITSPlateResult = (CHCNetSDK.NET_ITS_PLATE_RESULT)Marshal.PtrToStructure(pAlarmInfo, typeof(CHCNetSDK.NET_ITS_PLATE_RESULT));

            //保存抓拍图片
            for (int i = 0; i < struITSPlateResult.dwPicNum; i++)
            {
                if (struITSPlateResult.struPicInfo[i].dwDataLen != 0)
                {
                    string     str  = "ITS_UserID_[" + pAlarmer.lUserID + "]_Pictype_" + struITSPlateResult.struPicInfo[i].byType + "_Num" + (i + 1) + ".jpg";
                    FileStream fs   = new FileStream(str, FileMode.Create);
                    int        iLen = (int)struITSPlateResult.struPicInfo[i].dwDataLen;
                    byte[]     by   = new byte[iLen];
                    Marshal.Copy(struITSPlateResult.struPicInfo[i].pBuffer, by, 0, iLen);
                    fs.Write(by, 0, iLen);
                    fs.Close();
                }
            }
            //报警设备IP地址
            string strIP = pAlarmer.sDeviceIP;

            //抓拍时间:年月日时分秒
            string strTimeYear = string.Format("{0:D4}", struITSPlateResult.struSnapFirstPicTime.wYear) +
                                 string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.byMonth) +
                                 string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.byDay) + " "
                                 + string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.byHour) + ":"
                                 + string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.byMinute) + ":"
                                 + string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.bySecond) + ":"
                                 + string.Format("{0:D3}", struITSPlateResult.struSnapFirstPicTime.wMilliSec);

            //上传结果
            string stringPlateLicense = System.Text.Encoding.GetEncoding("GBK").GetString(struITSPlateResult.struPlateInfo.sLicense).TrimEnd('\0');
            string stringAlarm        = "抓拍上传," + "车牌:" + stringPlateLicense + ",车辆序号:" + struITSPlateResult.struVehicleInfo.dwIndex;

            this.Invoke(new Action(() =>
            {
                txtCarInfo.Text += Environment.NewLine + DateTime.Now.ToString() + "       " + strIP + "            " + stringAlarm;
                txtCarNO.Text    = stringPlateLicense;
            }));
        }
        private void ProcessCommAlarm_ITSPlate(ref CHCNetSDK.NET_DVR_ALARMER pAlarmer, IntPtr pAlarmInfo, uint dwBufLen, IntPtr pUser)
        {
            CHCNetSDK.NET_ITS_PLATE_RESULT struITSPlateResult = new CHCNetSDK.NET_ITS_PLATE_RESULT();
            uint dwSize = (uint)Marshal.SizeOf(struITSPlateResult);

            struITSPlateResult = (CHCNetSDK.NET_ITS_PLATE_RESULT)Marshal.PtrToStructure(pAlarmInfo, typeof(CHCNetSDK.NET_ITS_PLATE_RESULT));

            //保存抓拍图片
            for (int i = 0; i < struITSPlateResult.dwPicNum; i++)
            {
                if (struITSPlateResult.struPicInfo[i].dwDataLen != 0)
                {
                    string     str  = "D:/UserID_" + pAlarmer.lUserID + "_Pictype_" + struITSPlateResult.struPicInfo[i].byType + "_Num" + (i + 1) + ".jpg";
                    FileStream fs   = new FileStream(str, FileMode.Create);
                    int        iLen = (int)struITSPlateResult.struPicInfo[i].dwDataLen;
                    byte[]     by   = new byte[iLen];
                    Marshal.Copy(struITSPlateResult.struPicInfo[i].pBuffer, by, 0, iLen);
                    fs.Write(by, 0, iLen);
                    fs.Close();
                }
            }
        }
Example #5
0
        private void ProcessCommAlarm_ITSPlate(ref CHCNetSDK.NET_DVR_ALARMER pAlarmer, IntPtr pAlarmInfo, uint dwBufLen, IntPtr pUser)
        {
            int dvrloginid = pAlarmer.lUserID;

            var dvs = devicelists.Where(x => x.DVRLoginID == dvrloginid);

            if (dvs.Count() == 0)
            {
                if (OnShowInfoData != null)
                {
                    OnShowInfoData(InfoType.抓拍信息, null, "没有找到对应的注册设备,回调注册号:" + dvrloginid);
                }
                return;
            }
            DeviceInfo di = (DeviceInfo)dvs.ToArray()[0];

            if (di.beginTime != DateTime.MinValue)
            {
                if (DateTime.Now < di.beginTime || DateTime.Now > di.endTime)
                {
                    return;
                }
            }

            CHCNetSDK.NET_ITS_PLATE_RESULT struITSPlateResult = new CHCNetSDK.NET_ITS_PLATE_RESULT();



            uint dwSize = (uint)Marshal.SizeOf(struITSPlateResult);

            string imgBase64 = "";

            struITSPlateResult = (CHCNetSDK.NET_ITS_PLATE_RESULT)Marshal.PtrToStructure(pAlarmInfo, typeof(CHCNetSDK.NET_ITS_PLATE_RESULT));

            //保存抓拍图片
            for (int i = 0; i < struITSPlateResult.dwPicNum; i++)
            {
                if (struITSPlateResult.struPicInfo[i].byType == 1)
                {
                    if (struITSPlateResult.struPicInfo[i].dwDataLen != 0)
                    {
                        int    iLen = (int)struITSPlateResult.struPicInfo[i].dwDataLen;
                        byte[] by   = new byte[iLen];
                        Marshal.Copy(struITSPlateResult.struPicInfo[i].pBuffer, by, 0, iLen);
                        imgBase64 = Convert.ToBase64String(by);

                        if (IsSaveImage)
                        {
                            SaveImage(by, di.DeviceName + "_" + struITSPlateResult.struPicInfo[i].byType.ToString());
                        }
                    }
                }
            }

            //log4net.ILog log = log4net.LogManager.GetLogger("abc");
            //log.Debug(Newtonsoft.Json.JsonConvert.SerializeObject(struITSPlateResult));

            //抓拍时间:年月日时分秒
            string strTimeYear = string.Format("{0:D4}", struITSPlateResult.struSnapFirstPicTime.wYear) + "-" +
                                 string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.byMonth) + "-" +
                                 string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.byDay) + " "
                                 + string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.byHour) + ":"
                                 + string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.byMinute) + ":"
                                 + string.Format("{0:D2}", struITSPlateResult.struSnapFirstPicTime.bySecond);

            di.LastTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

            // 对上传的车牌含颜色,对其做处理
            string carNo = struITSPlateResult.struPlateInfo.sLicense;

            if (carNo.Length > 7)
            {
                carNo = carNo.Substring(carNo.Length - 7, 7);
            }



            //struITSPlateResult.struPlateInfo.sLicense 车牌号码

            //struITSPlateResult.byVehicleType
            //车型识别:0- 未知,1- 客车(大型),2- 货车(大型),3- 轿车(小型),4- 面包车,
            //5- 小货车,6- 行人,7- 二轮车,8- 三轮车,9- SUV/MPV,10- 中型客车

            //设置车辆类型
            string CarType = "Z";

            switch (struITSPlateResult.byVehicleType)
            {
            case 1:
            case 10:
                CarType = "K";
                break;

            case 2:
                CarType = "H";
                break;

            case 3:
            case 4:
            case 5:
            case 9:
                CarType = "X";
                break;
            }

            //设置车牌颜色
            string CarNocolor = "4";

            switch ((CHCNetSDK.VCA_PLATE_COLOR)struITSPlateResult.struPlateInfo.byColor)
            {
            case CHCNetSDK.VCA_PLATE_COLOR.VCA_BLUE_PLATE:    //蓝色车牌
                CarNocolor = "2";
                break;

            case CHCNetSDK.VCA_PLATE_COLOR.VCA_YELLOW_PLATE:    //黄色车牌
                CarNocolor = "1";
                break;

            case CHCNetSDK.VCA_PLATE_COLOR.VCA_WHITE_PLATE:    //白色车牌
                CarNocolor = "0";
                break;

            case CHCNetSDK.VCA_PLATE_COLOR.VCA_BLACK_PLATE:    //黑色车牌
                CarNocolor = "3";
                break;

            case CHCNetSDK.VCA_PLATE_COLOR.VCA_GREEN_PLATE:     //绿色车牌
                CarNocolor = "5";
                break;

            default:
                break;
            }

            //设置车辆方向
            //string CarDirection = struITSPlateResult.byDir == 1 ? "19" : "20";

            //使用触发的车道号来判断方向
            string CarDirection = struITSPlateResult.byDriveChan == 1 ? "19" : "20";

            //上传结果
            string stringAlarm = "[" + di.UnitName + "-" + di.DeviceAddress + "]抓拍上传," + "车牌:" + carNo + ",方向:" + (CarDirection == "19" ? "进入" : "离开");

            carservice.SaveCarInfo(di.DeviceName,
                                   carNo,
                                   strTimeYear,
                                   CarNocolor,
                                   CarType,
                                   CarDirection,
                                   imgBase64);

            if (OnShowInfoData != null)
            {
                OnShowInfoData(InfoType.抓拍信息, di, stringAlarm);
            }
        }
Example #6
0
        public uint ProcessCommAlarm_ITSPlate(ref CHCNetSDK.NET_DVR_ALARMER pAlarmer, IntPtr pAlarmInfo, uint dwBufLen, IntPtr pUser)
        {
            DateTime dtS = DateTime.Now;

            CHCNetSDK.NET_ITS_PLATE_RESULT struITSPlateResult = new CHCNetSDK.NET_ITS_PLATE_RESULT();
            uint dwSize = (uint)Marshal.SizeOf(struITSPlateResult);

            struITSPlateResult = (CHCNetSDK.NET_ITS_PLATE_RESULT)Marshal.PtrToStructure(pAlarmInfo, typeof(CHCNetSDK.NET_ITS_PLATE_RESULT));
            TimeSpan ts = DateTime.Now - dtS;

            Log.WritePlateLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff") + " 摄像机抓拍完成时间1:" + ts.TotalMilliseconds + "\r\n");
            MF.CameraCanpost.WaitOne(1000);
            MF.AddOperLogCacheStr("进入报警布防回调函数,图片" + struITSPlateResult.dwPicNum.ToString() + "张..");
            string res  = "成功";
            int    iLen = (int)struITSPlateResult.struPicInfo[0].dwDataLen;

            byte[] by = new byte[iLen];
            if (iLen > 0)
            {
                res = "成功";
            }
            else
            {
                res = "失败";
            }
            MF.AddOperLogCacheStr("取图返回:" + res);
            if (struITSPlateResult.struPlateInfo.sLicense.Equals("无车牌"))
            {
                GetPlateNo = "未检测";
            }
            else
            {
                string temp = "";
                switch (struITSPlateResult.struPlateInfo.byColor)
                {
                case 0:
                    temp = "蓝";
                    break;

                case 1:
                    temp = "黄";
                    break;

                case 2:
                    temp = "白";
                    break;

                case 3:
                    temp = "黑";
                    break;

                case 4:
                    temp = "绿";
                    break;

                default:
                    break;
                }
                GetPlateNo = struITSPlateResult.struPlateInfo.sLicense;
            }
            if (GetPlateNo.Equals(""))
            {
                GetPlateNo = "无牌车";
            }
            MF.AddOperLogCacheStr("车牌: " + GetPlateNo);
            GetVehicleLogoRecog = "";
            GetVehicleLogoRecog = CHCNetSDK.VLR_VEHICLE_CLASS[struITSPlateResult.struVehicleInfo.byVehicleLogoRecog];
            FlieClass fc          = new FlieClass();
            string    dirpath     = GlobalMember.SavePicPath + "\\";
            DateTime  forcetimedt = DateTime.Now;
            string    forcetime   = forcetimedt.ToString("yyyyMMddHHmmss");
            string    imagename   = forcetime + GetPlateNo + ".bmp";

            dirpath  += DateTime.Now.Year.ToString();
            dirpath  += "年\\";
            dirpath  += DateTime.Now.Month.ToString();
            dirpath  += "月\\";
            dirpath  += DateTime.Now.Day.ToString();
            dirpath  += "日\\";
            imagepath = dirpath + imagename;
            //暂时放这里
            ts = DateTime.Now - dtS;
            Log.WritePlateLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff") + " 摄像机抓拍完成时间2:" + ts.TotalMilliseconds + "\r\n");

            Marshal.Copy(struITSPlateResult.struPicInfo[0].pBuffer, by, 0, iLen);
            try
            {
                if (true == fc.WriteFileImage(dirpath, imagename, by, 0, iLen))
                {
                    //MF.CameraCanpost.WaitOne(300);
                    MF.CameraPicture.Set();
                    ts = DateTime.Now - dtS;
                    Log.WritePlateLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff") + " 摄像机抓拍完成时间3:" + ts.TotalMilliseconds + "\r\n");
                }
                else
                {
                    MF.AddOperLogCacheStr("保存车牌图片失败!");
                    return(1);
                }
            }
            catch (Exception)
            {
                MF.AddOperLogCacheStr("保存车牌图片失败!");
                return(1);
            }
            //MF.CameraCanpost.Reset();
            return(0);
        }
Example #7
0
        /// <summary>
        /// 回调函数
        /// </summary>
        /// <param name="lCommand">报警信息类型</param>
        /// <param name="pAlarmer"></param>
        /// <param name="pAlarmInfo"></param>
        /// <param name="dwBufLen"></param>
        /// <param name="pUser"></param>
        /// <returns></returns>
        private bool MSgCallback_V31(int lCommand, ref CHCNetSDK.NET_DVR_ALARMER pAlarmer, IntPtr pAlarmInfo, uint dwBufLen, IntPtr pUser)
        {
            switch (lCommand)                     //不同的lCommand对应不同的pAlarmInfo内容
            {
            case CHCNetSDK.COMM_ITS_PLATE_RESULT: //交通抓拍结果上传(新类型)



            {
                #region 车头相片  第一部相机
                CHCNetSDK.NET_ITS_PLATE_RESULT struITSPlateResult2 = new CHCNetSDK.NET_ITS_PLATE_RESULT();
                uint dwSize2 = (uint)Marshal.SizeOf(struITSPlateResult2);
                struITSPlateResult2 = (CHCNetSDK.NET_ITS_PLATE_RESULT)Marshal.PtrToStructure(pAlarmInfo, typeof(CHCNetSDK.NET_ITS_PLATE_RESULT));
                int lChannel2 = 1;         //通道号 Channel number
                CHCNetSDK.NET_DVR_MakeKeyFrame(m_lUserID, lChannel2);

                //保存车头相片
                byte[] Carno  = struITSPlateResult2.struPlateInfo.sLicense; //车牌号码
                byte   roudNo = struITSPlateResult2.byDriveChan;            //车道号


                byte secondCam = struITSPlateResult2.bySecondCam;

                string carNumber    = System.Text.Encoding.Default.GetString(Carno);
                string nocar        = roudNo.ToString();
                string strSecondCam = secondCam.ToString();
                string chepaihao    = System.Text.Encoding.GetEncoding("GBK").GetString(struITSPlateResult2.struPlateInfo.sLicense).TrimEnd('\0');
                string headpath     = "F:\\VideoCapture\\picture\\NoCar.jpg";
                //保存抓拍图片
                for (int i = 0; i < struITSPlateResult2.dwPicNum; i++)
                {
                    if (struITSPlateResult2.struPicInfo[i].dwDataLen != 0)
                    {
                        // label7.Text = nocar;

                        //iFileNumber



                        string path = "F:\\VideoCapture\\picture";


                        if (System.IO.Directory.Exists(path) == false)
                        {
                            System.IO.Directory.CreateDirectory(path);
                        }

                        headpath = "\\" + "G" + chepaihao + "G2" + secondCam + ".jpg";
                        if (struITSPlateResult2.struPicInfo[i].byType == 1)
                        {
                            FileStream fs   = new FileStream(headpath, FileMode.Create);
                            int        iLen = (int)struITSPlateResult2.struPicInfo[i].dwDataLen;
                            byte[]     by   = new byte[iLen];
                            Marshal.Copy(struITSPlateResult2.struPicInfo[i].pBuffer, by, 0, iLen);
                            fs.Write(by, 0, iLen);
                            fs.Close();
                        }
                        iFileNumber++;
                    }
                }


                #endregion



                #region 保存视频 黑烟相机  第二部相机


                CHCNetSDK.NET_ITS_PLATE_RESULT struITSPlateResult = new CHCNetSDK.NET_ITS_PLATE_RESULT();
                uint dwSize = (uint)Marshal.SizeOf(struITSPlateResult);
                struITSPlateResult = (CHCNetSDK.NET_ITS_PLATE_RESULT)Marshal.PtrToStructure(pAlarmInfo, typeof(CHCNetSDK.NET_ITS_PLATE_RESULT));

                //获取黄色车牌才抓拍以及录视频



                //车牌颜色
                byte plateColor = struITSPlateResult.struPlateInfo.byColor;         //1黄色

                //录像保存路径和文件名 the path and file name to save
                string sVideoFileName;
                string path2 = "F:\\VideoCapture";
                if (System.IO.Directory.Exists(path2) == false)
                {
                    System.IO.Directory.CreateDirectory(path2);
                }
                sVideoFileName = "\\" + DateTime.Now.ToString("hhmmss") + ".mp4";



                //强制I帧 Make a I frame
                //  int lChannel = Int16.Parse(textBoxChannel.Text); //通道号 Channel number
                int lChannel = 2;         //通道号 Channel number
                CHCNetSDK.NET_DVR_MakeKeyFrame(m_lUserID2, lChannel);

                //开始录像 Start recording
                CHCNetSDK.NET_DVR_SaveRealData(m_lUserID2, sVideoFileName);
                Thread.Sleep(5000);
                //停止录像
                CHCNetSDK.NET_DVR_StopSaveRealData(m_lUserID2);
                #endregion


                #region  调用黑烟检测函数     如果满足要求将 先关信息存入到数据库

                string ss = HttpGet("http://192.168.200.8:5000/parse/");



                JsonReader reader = new JsonTextReader(new StringReader(ss));

                while (reader.Read())
                {
                    ss = reader.Value.ToString();
                }
                Console.WriteLine("处理后:" + ss);


                JArray jArray = (JArray)JsonConvert.DeserializeObject(ss);


                string vLicenceNo    = jArray[0]["vLicenceNo"].ToString();
                float  vLicenceNoCer = (float)Convert.ToDouble(jArray[0]["vLicenceNoCer"]);
                int    vRingelLevel  = Convert.ToInt32(jArray[0]["vRingelLevel"]);    //jArray[0]["vRingelLevel"].ToString();

                float  vRingelLevelCer = (float)Convert.ToDouble(jArray[0]["vRingelLevelCer"]);
                string vType           = jArray[0]["vType"].ToString();
                string vLicenceColor   = jArray[0]["vLicenceColor"].ToString();
                string vLicenceType    = jArray[0]["vLicenceType"].ToString();
                string vimage11        = jArray[0]["vImage1"].ToString();
                string vimage21        = jArray[0]["vImage2"].ToString();

                #endregion

                #region 保存数据



                DateTime vchecktime = System.DateTime.Now; //检测的时间
                string   vstation   = "文曲路";               //站点
                string   vno        = vLicenceNo;          //车牌号
                float    vnocer     = vLicenceNoCer;
                string   vcolor     = vLicenceColor;       //车牌颜色
                string   vtype      = vType;
                int      vroadno    = roudNo;
                string   vboadtype  = vLicenceType;
                float    vboardcer  = vLicenceNoCer; //车牌置信度
                int      vrigel     = vRingelLevel;  //林格曼黑度

                float  vrigelcer = vRingelLevelCer;  //置信度
                string vimage1   = vimage11;         //车尾照片1
                string vimage2   = vimage21;         //车尾照片2
                string vimage    = headpath;
                string vvideo    = sVideoFileName;


                Vehicle v = new Vehicle();
                v.vcheckdate      = vchecktime;
                v.vstationname    = vstation;
                v.vno             = vno;
                v.vboardcredi     = (float)vnocer;
                v.vcolor          = vcolor;
                v.vroadno         = vroadno;
                v.vboardtype      = vboadtype;
                v.vringelman      = vrigel;
                v.vringelmancredi = (float)vrigelcer;

                v.vimage1    = vimage1;
                v.vheadimage = vimage;
                v.vimage2    = vimage2;

                v.vvideo = vvideo;

                IVehicleBAL vehicleBAL = new ImVehicleBAL();
                if (vehicleBAL.AddVehicle(v) < 0)
                {
                    MessageBox.Show("添加失败");
                }



                #endregion
            }
            break;
            }

            return(true);
        }