Пример #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            int iMinVal = StringEx.getInt(INIConfig.ReadString("Config", AppConfig.IMAGE_MIN, "0"));
            int iMaxVal = StringEx.getInt(INIConfig.ReadString("Config", AppConfig.IMAGE_MAX, "0"));

            int iGrayMinVal   = StringEx.getInt(INIConfig.ReadString("Config", AppConfig.GRAY_MIN, "0"));
            int iGrayMaxVal   = StringEx.getInt(INIConfig.ReadString("Config", AppConfig.GRAY_MAX, "0"));
            int iEXPORT_IMAGE = StringEx.getInt(INIConfig.ReadString("Config", AppConfig.EXPORT_IMAGE, "0"));

            String cDFS_PATH = INIConfig.ReadString("UPLOAD", "DFS_PATH", "0");

            String       cAppDir  = Application.StartupPath;
            Boolean      isUpload = false;
            JActiveTable aMaster  = new JActiveTable();
            JActiveTable aSlave   = new JActiveTable();

            aSlave.TableName  = "XT_IMG_LIST";
            aMaster.TableName = "XT_IMG_REC";
        }
Пример #2
0
        public Boolean CheckTask(String cTaskID)
        {
            Boolean AllowTask = INIConfig.ReadInt("TASK", cTaskID + "_FLAG") > 0;
            String  cDayHour  = DateTime.Now.ToString("HHmm");
            String  cDay      = DateTime.Now.ToString("yyyyMMdd");
            String  cORG_ID   = INIConfig.ReadString("Config", AppConfig.ORG_ID);

            if (AllowTask)
            {
                String cTASK = INIConfig.ReadString("TASK", cTaskID);
                if (cTASK.Equals(cDayHour))
                {
                    String cTASK_DAY = INIConfig.ReadString("TASK", cTaskID + "_DAY");
                    if (!cTASK_DAY.Equals(cDay))
                    {
                        JActiveTable aTable = new JActiveTable();
                        aTable.TableName = "XT_TASK";
                        aTable.AddField("TASK_ID", cTaskID);
                        aTable.AddField("TASK_TIME", cTASK);
                        aTable.AddField("TASK_DAY", cDay);
                        aTable.AddField("ORG_ID", cORG_ID);
                        String sql   = aTable.getUpdateSQL(" ORG_ID='" + cORG_ID + "' AND TASK_ID='" + cTaskID + "'");
                        int    iCode = WebSQL.ExecSQL(sql);
                        if (iCode == 0)
                        {
                            sql   = aTable.getInsertSQL();
                            iCode = WebSQL.ExecSQL(sql);
                        }
                        INIConfig.Write("TASK", cTaskID + "_DAY", cDay);
                        return(iCode > 0);
                    }
                }
                return(false);
            }
            else
            {
                return(false);
            }
        }
Пример #3
0
        public void save()
        {
            ActiveResult vret    = ActiveResult.Valid(AppConfig.SUCCESS);
            String       cKeyID  = StringEx.getString(request["ID"]);
            String       cREC_ID = StringEx.getString(request["REC_ID"]);

            if (String.IsNullOrWhiteSpace(cREC_ID))
            {
                vret = ActiveResult.Valid("参数传递错误!");
            }
            else
            {
                String        cDeviceID = DbManager.GetStrValue("SELECT CAMERA_ID FROM XT_IMG_REC WHERE REC_ID='" + cREC_ID + "'");
                XT_CAMERA_Dao dao       = new XT_CAMERA_Dao();
                XT_CAMERA     mv        = dao.FindItem(cDeviceID);

                String cAddress = mv.addr;
                String CX       = StringEx.getString(mv.x);
                String CY       = StringEx.getString(mv.y);
                String ID       = AutoID.getAutoID();

                List <String> sqls = new List <string>();
                sqls.Add("  update XT_IMG_REC SET ALARM_CHECKED =1 WHERE REC_ID = '" + cREC_ID + "' ");
                JActiveTable aTable = new JActiveTable();
                aTable.TableName = "XT_JB";
                aTable.AddField("ID", ID);
                aTable.AddField("ADRESS", cAddress);
                aTable.AddField("X", CX);
                aTable.AddField("Y", CY);
                sqls.Add(aTable.getInsertSQL());

                int iCode = DbManager.ExecSQL(sqls);
                vret = ActiveResult.Valid(iCode);
            }

            response.Write(vret.toJSONString());
        }
Пример #4
0
        private bool UpdateAlarmFile(String cFileName)
        {
            JActiveTable aMaster = new JActiveTable();

            aMaster.TableName = "XT_IMG_REC";

            String  cFileExt   = Path.GetExtension(cFileName);
            String  cREC_ID    = Path.GetFileName(cFileName).Replace(cFileExt, "");
            String  cWebUrl    = INIConfig.ReadString("Config", AppConfig.WEB_URL);
            String  cUrl       = "http://" + cWebUrl + "/api/dfs.ashx?UPLOAD_FIELD=UPLOAD_FLAG";
            Boolean UploadFlag = CopyUnit.PostFile(cFileName, cWebUrl);

            if (UploadFlag)
            {
                log4net.WriteLogFile("REC_ID为:" + cREC_ID + "的图片,已上传!");
                aMaster.ClearField();
                aMaster.AddField("UPLOAD_FLAG", 1);
                aMaster.AddField("UPDATE_TIME", DateUtils.getDayTimeNum());
                int iCode = WebSQL.ExecSQL(aMaster.getUpdateSQL(" REC_ID='" + cREC_ID + "' "));

                try
                {
                    File.Delete(cFileName);
                }
                catch (Exception ex)
                {
                    log4net.WriteLogFile("UploadTask.Execute." + ex.Message);
                }
                log4net.WriteLogFile("REC_ID为:" + cREC_ID + "的图片,本删除成功!");
                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #5
0
        private void timPreset_Tick(object sender, EventArgs e)
        {
            timPreset.Enabled = false;
            int iCode = 0;

            try
            {
                Boolean AllowWait = false;
                int     idx       = -1;
                if (YWZ_VAL_LIST.Count > 0)
                {
                    idx = YWZ_VAL_LIST.Count - 1;

                    IVS_PTZ_PRESET vPreset = (IVS_PTZ_PRESET)YWZ_VAL_LIST[idx];
                    YWZ_VAL_LIST.RemoveAt(idx);
                    YWZ_TXT_LIST.Items.RemoveAt(idx);
                    int pLockStatus = 0;
                    iCode = IVS_API.IVS_SDK_PtzControl(ApplicationEvent.iSession, ActiveCameraCode, 11, vPreset.cPresetName, "3", ref pLockStatus);
                    if (iCode > 0)
                    {
                        log4net.WriteLogFile("调用预置位失败");
                        return;
                    }
                    else
                    {
                        AllowWait = true;
                    }
                }
                if (AllowWait)
                {
                    Boolean isAbort = false;
                    int     iORD    = 0;
                    while (!isAbort)
                    {
                        Application.DoEvents();
                        Thread.Sleep(200);
                        iORD++;
                        if (iORD > 15)
                        {
                            isAbort = true;
                        }
                    }
                }
                isPlay = true;
                String cAppDir = INIConfig.ReadString("ALARM", "FILE_PATH", "");
                if (Directory.Exists(cAppDir))
                {
                    Directory.CreateDirectory(cAppDir);
                }

                int    iPRESET_ID = 9999;
                String cKeyID     = "";
                string cKeyGuid   = "";
                if (idx != -1)
                {
                    cKeyID     = AutoID.getAutoID() + "_" + String.Format("{0:0#00}", idx);
                    cKeyGuid   = ActiveCameraCode + "X" + String.Format("{0:0#00}", idx);
                    iPRESET_ID = idx;
                }
                else
                {
                    cKeyID     = AutoID.getAutoID() + "_0000";
                    cKeyGuid   = ActiveCameraCode + "X" + "0000";
                    iPRESET_ID = 9999;
                }

                cAppDir = cAppDir + cKeyID.Substring(0, 8);
                if (Directory.Exists(cAppDir))
                {
                    Directory.CreateDirectory(cAppDir);
                }

                String cFileName = cAppDir + "\\" + cKeyID + ".jpg";
                Application.DoEvents();
                iCode = IVS_API.IVS_SDK_LocalSnapshot(ApplicationEvent.iSession, (UInt32)ulRealPlayHandle, 1, cFileName);

                if (iCode == 0)
                {
                    cAppDir = INIConfig.ReadString("ANALYSE", "FILE_PATH", "");
                    String cAnalyseFile = cAppDir + cKeyID + ".jpg";
                    try
                    {
                        String cFilePath = Path.GetDirectoryName(cAnalyseFile);
                        if (!Directory.Exists(cFilePath))
                        {
                            Directory.CreateDirectory(cFilePath);
                        }
                        File.Copy(cFileName, cAnalyseFile);
                    }
                    catch (Exception ex)
                    {
                        log4net.WriteLogFile(ex.Message);
                    }

                    log4net.WriteLogFile("IVS_SDK_LocalSnapshot成功!" + cFileName);
                    String cKeyText = IMGAI.getImageText(cFileName);

                    List <String> sqls     = new List <string>();
                    String        cDayTime = DateTime.Now.ToString("yyyyMMddHHmmss");
                    JActiveTable  aMaster  = new JActiveTable();
                    aMaster.TableName = "XT_IMG_REC";
                    aMaster.AddField("REC_ID", cKeyID);
                    aMaster.AddField("CAMERA_ID", ActiveCameraCode);
                    aMaster.AddField("PRESET_ID", iPRESET_ID);

                    aMaster.AddField("AI_FLAG", 0);
                    aMaster.AddField("ALARM_FLAG", 0);
                    aMaster.AddField("ALARM_CHECKED", 0);
                    aMaster.AddField("IMAGE_REDRAW", 0);


                    if (!String.IsNullOrEmpty(cKeyText))
                    {
                        aMaster.AddField("P", IMGAI.getP(cKeyText));
                        aMaster.AddField("T", IMGAI.getT(cKeyText));
                        aMaster.AddField("X", IMGAI.getX(cKeyText));
                    }
                    aMaster.AddField("FILE_URL", "/dfs/" + cKeyID.Substring(0, 8) + "/" + cKeyID + ".jpg");
                    aMaster.AddField("CREATE_TIME", cDayTime);
                    aMaster.AddField("UPLOAD_FLAG", 1);

                    String       cMasterSQL = aMaster.getInsertSQL();
                    JActiveTable aSlave     = new JActiveTable();
                    aSlave.TableName = "XT_CAMERA_STATUS";
                    aSlave.AddField("UPDATE_TIME", cDayTime);
                    String cSlaveSQL = aSlave.getUpdateSQL("CAMERA_ID = '" + ActiveCameraCode + "' ");

                    sqls.Add(cMasterSQL);
                    sqls.Add(cSlaveSQL);
                    iCode = WebSQL.ExecSQL(sqls);
                    if (iCode > 0)
                    {
                        log4net.WriteLogFile(cKeyID + "插入数据库成功");
                    }
                }
                Application.DoEvents();
            }
            catch (Exception ex)
            {
                log4net.WriteLogFile("Camera_YZW_List失败!" + ex.Message);
            }
            finally
            {
                if (YWZ_VAL_LIST.Count > 0)
                {
                    timPreset.Enabled = true;
                }
                else if (YWZ_VAL_LIST.Count == 0)
                {
                    timAfter.Enabled = true;
                }
            }
        }
Пример #6
0
        public bool UpdateAnalyseFile(String cFileName)
        {
            Boolean      isUpload = false;
            JActiveTable aMaster  = new JActiveTable();
            JActiveTable aSlave   = new JActiveTable();

            aSlave.TableName  = "XT_IMG_LIST";
            aMaster.TableName = "XT_IMG_REC";

            log4net.WriteLogFile("分析线程正在运行中......");
            if (String.IsNullOrWhiteSpace(cFileName))
            {
                return(false);
            }

            String          cFileExt        = Path.GetExtension(cFileName);
            String          cREC_ID         = Path.GetFileName(cFileName).Replace(cFileExt, "");
            List <KeyValue> ImageList       = IMGAI.getImageList(cFileName, iMinVal, iMaxVal, iGrayMinVal, iGrayMaxVal);
            String          cExportFileName = Application.StartupPath + "\\" + cREC_ID + ".zip";
            int             iCode           = 0;
            Boolean         MustRemoveFile  = false;

            if ((ImageList != null) && (ImageList.Count > 0))
            {
                List <String> sqls = new List <string>();
                for (int k = 0; (ImageList != null) && (k < ImageList.Count); k++)
                {
                    Application.DoEvents();
                    KeyValue rowKey = ImageList[k];
                    aSlave.ClearField();
                    String cKeyID = StringEx.getString(k + 1000);
                    aSlave.AddField("ID", AutoID.getAutoID() + "_" + cKeyID);
                    aSlave.AddField("ALARM_FLAG", 0);
                    aSlave.AddField("REC_ID", cREC_ID);
                    aSlave.AddField("CREATE_TIME", DateUtils.getDayTimeNum());
                    aSlave.AddField("POINT_LIST", rowKey.Val);
                    sqls.Add(aSlave.getInsertSQL());
                }
                sqls.Insert(0, "DELETE FROM XT_IMG_REC WHERE REC_ID='" + cREC_ID + "'");
                iCode = WebSQL.ExecSQL(sqls);

                if (iCode > 0)
                {
                    if (File.Exists(cExportFileName))
                    {
                        SftpClient ftp = getAnalyseClient();
                        isUpload = CopyUnit.SSH_Upload(ftp, cExportFileName, "ANALYSE");
                    }
                }
                if (isUpload)
                {
                    MustRemoveFile = true;
                    log4net.WriteLogFile("UploadTask.文件上传成功!");
                }
                else
                {
                    log4net.WriteLogFile("UploadTask." + cREC_ID + ":文件上传失败!");
                }
            }
            else
            {
                log4net.WriteLogFile("UploadTask." + cREC_ID + ":图片拆分失败!");
                MustRemoveFile = true;
            }
            if (MustRemoveFile)
            {
                try
                {
                    File.Delete(cFileName);
                }
                catch (Exception ex)
                {
                    log4net.WriteLogFile(ex.Message);
                }
                try
                {
                    File.Delete(cExportFileName);
                }
                catch (Exception ex)
                {
                    log4net.WriteLogFile(ex.Message);
                }
            }

            aMaster.ClearField();
            if (iCode > 0)
            {
                aMaster.AddField("AI_FLAG", 1);
            }
            else
            {
                aMaster.AddField("AI_FLAG", 2);
            }
            iCode = WebSQL.ExecSQL(aMaster.getUpdateSQL(" REC_ID='" + cREC_ID + "' "));
            if (iCode > 0)
            {
                log4net.WriteLogFile("REC_ID为:" + cREC_ID + "的图片抠图成功!");
            }
            return(true);
        }