Ejemplo n.º 1
0
        public void RestoreAutomatReco()
        {
            Int32.TryParse(myParams.Value("MarkExceptions"), out int markExceptions);

            {
                Int32.TryParse(myParams.Value("FilesToDisk"), out int filesToDisk);
                string dirIn  = (filesToDisk > 0) ? myParams.Value("DirIn") : "";
                string dirOut = (filesToDisk > 0) ? myParams.Value("DirOut") : "";

                Int32.TryParse(myParams.Value("IDsProcSpanLim"), out int idsProcSpanLim);
                Int32.TryParse(myParams.Value("RecognizeMode"), out int mode);
                Int32.TryParse(myParams.Value("RecognizeBorder"), out int recognizeBorder);
                Int32.TryParse(myParams.Value("Latitude_deg"), out int latitude_deg);
                Int32.TryParse(myParams.Value("OffsetDayTime_min"), out int offsetDayTime_min);
                Int32.TryParse(myParams.Value("OffsetTimeZone_min"), out int offsetTimeZone_min);

                Int32.TryParse(myParams.Value("OutName_FileName"), out int outName_FileName);
                Int32.TryParse(myParams.Value("OutName_DateTime"), out int outName_DateTime);
                Int32.TryParse(myParams.Value("OutName_Name"), out int outName_Name);
                Int32.TryParse(myParams.Value("OutName_Mark"), out int outName_Mark);
                Int32.TryParse(myParams.Value("OutName_Modl"), out int outName_Modl);
                Int32.TryParse(myParams.Value("OutName_Genr"), out int outName_Genr);
                Int32.TryParse(myParams.Value("OutName_MarkProp"), out int outName_MarkProp);
                Int32.TryParse(myParams.Value("OutName_Type"), out int outName_Type);
                Int32.TryParse(myParams.Value("OutName_Side"), out int outName_Side);
                Int32.TryParse(myParams.Value("OutName_TypeProp"), out int outName_TypeProp);
                Int32.TryParse(myParams.Value("OutName_FileNam2"), out int outName_FileNam2);

                Int32.TryParse(myParams.Value("SaveOps_MarkRect"), out int saveOps_MarkRect);
                Int32.TryParse(myParams.Value("SaveOps_TypeRect"), out int saveOps_TypeRect);
                Int32.TryParse(myParams.Value("SaveOps_SaveRecs"), out int saveOps_SaveRecs);
                Int32.TryParse(myParams.Value("SaveOps_SaveUnrecs"), out int saveOps_SaveUnrecs);
                Int32.TryParse(myParams.Value("SaveOps_RemoveOld"), out int saveOps_RemoveOld);
                Int32.TryParse(myParams.Value("SaveOps_RenameNew"), out int saveOps_RenameNew);

                try
                {
                    int res0 = CarModelSdk.SetRecoCountLim(
                        idsProcSpanLim
                        );

                    int res1 = CarModelSdk.SetRecognizeMode(
                        (RecognizeMode)mode
                        );

                    int res91 = CarModelSdk.SetRecognizeOptions(
                        recognizeBorder,
                        latitude_deg,
                        offsetDayTime_min,
                        offsetTimeZone_min
                        );

                    sdk = new CarModelSdk();

                    int testInt = CarModelSdk.Test(12345);
                    Log(new string("testInt 12345 = " + testInt), 1);
                    Log(" ", 2);

                    int res6 = CarModelSdk.GetRecoCarMarkAddress(out long addrNum1);
                    Log("RecoCarMarkAddress = " + addrNum1, 1);
                    int res7 = CarModelSdk.GetRecoCarTypeAddress(out long addrNum2);
                    Log("RecoCarTypeAddress = " + addrNum2, 1);

                    int res13 = CarModelSdk.SetFileDirectoryIn(dirIn);
                    int res14 = CarModelSdk.SetFileDirectoryOut(dirOut);

                    int res93 = CarModelSdk.SetOutFileNamesFormat(
                        outName_FileName,
                        outName_DateTime,
                        outName_Name,
                        outName_Mark,
                        outName_Modl,
                        outName_Genr,
                        outName_MarkProp,
                        outName_Type,
                        outName_Side,
                        outName_TypeProp,
                        outName_FileNam2);

                    int res94 = CarModelSdk.SetSaveOptions(
                        filesToDisk,
                        saveOps_MarkRect,
                        saveOps_TypeRect,
                        saveOps_SaveRecs,
                        saveOps_SaveUnrecs,
                        saveOps_RemoveOld,
                        saveOps_RenameNew);
                }
                catch (Exception e)
                {
                    if (markExceptions > 0)
                    {
                        Console.WriteLine(new string("Restore AutomatReco Error: " + e));
                    }
                    if (markExceptions > 1)
                    {
                        Console.WriteLine(" -> -> " + e.StackTrace);
                    }
                }
                finally
                {
                    //Console.WriteLine(" -> -> finally ");
                }
            }
        }
Ejemplo n.º 2
0
        private DateTime getNextDateTime(string curDateString, out DateTime strtDT, out DateTime stopDT, out bool isToday)
        {
            //Console.WriteLine("getNextDateTime (" + curDateString + ")");

            Int32.TryParse(myParams.Value("UseDarkFilter"), out int useDarkFilter);
            Int32.TryParse(myParams.Value("Latitude_deg"), out int latitude_deg);
            Int32.TryParse(myParams.Value("OffsetDayTime_min"), out int offsetDayTime_min);
            Int32.TryParse(myParams.Value("OffsetTimeZone_min"), out int offsetTimeZone_min);
            Int32.TryParse(myParams.Value("TodayTimeLag_ms"), out int todayTimeLag_ms);

            Int32.TryParse(myParams.Value("ForseToday"), out int forseToday);

            var todayDT = DateTime.Today;

            strtDT  = StringToDate000(curDateString);
            isToday = strtDT >= todayDT;

            // если уже начался новый световой день - форсим переход на текущую дату
            if ((strtDT > todayDT) ||
                (forseToday > 0 && strtDT < todayDT))
            {
                // получим время рассвета для текущей даты
                int today_yer = todayDT.Year;
                int today_mon = todayDT.Month;
                int today_day = todayDT.Day;

                int todaySunrize_mins = CarModelSdk.CalcSunrize_mins_full(todayDT.Month, todayDT.Day, latitude_deg, offsetDayTime_min, offsetTimeZone_min);

                int todaySunrize_hr = todaySunrize_mins / 60;
                int todaySunrize_mn = todaySunrize_mins % 60;
                int todaySunrize_sc = 0;
                var todaySunrizeDT  = new DateTime(today_yer,
                                                   today_mon,
                                                   today_day,
                                                   todaySunrize_hr,
                                                   todaySunrize_mn,
                                                   todaySunrize_sc);

                // форсим переход на текущую дату
                if (DateTime.Now >= todaySunrizeDT)
                {
                    strtDT = todayDT;

                    int res = updateLastDate(todayDT.ToString("yyyy-MM-dd"));
                    //int res = updateParamInDB("LastDate", todayDT.ToString("yyyy-MM-dd"));
                    int res1 = updateParamInDB("LastID", "0");
                    Log("FORSE TODAY:  todayDT = " + todayDT.ToString("yyyy-MM-dd HH:mm:ss"), 1);
                }
            }

            int yer = strtDT.Year;
            int mon = strtDT.Month;
            int day = strtDT.Day;

            stopDT = strtDT.AddDays(1);

            // если активен фильтр по тёмному времени суток - поправим границы диапазона
            if (useDarkFilter > 0)
            {
                // получим время рассвета
                int sunrize_mins = CarModelSdk.CalcSunrize_mins_full(mon, day, latitude_deg, offsetDayTime_min, offsetTimeZone_min);
                int sunrize_hr   = sunrize_mins / 60;
                int sunrize_mn   = sunrize_mins % 60;
                int sunrize_sc   = 0;

                strtDT = new DateTime(strtDT.Year, strtDT.Month, strtDT.Day, sunrize_hr, sunrize_mn, sunrize_sc);

                // получим время заката
                int sunset_mins = CarModelSdk.CalcSunset_mins_full(mon, day, latitude_deg, offsetDayTime_min, offsetTimeZone_min);
                if (sunset_mins < 1440)
                {
                    int sunset_hr = sunset_mins / 60;
                    int sunset_mn = sunset_mins % 60;
                    int sunset_sc = 0;
                    stopDT = new DateTime(strtDT.Year, strtDT.Month, strtDT.Day, sunset_hr, sunset_mn, sunset_sc);
                }
                else
                {
                    stopDT = new DateTime(stopDT.Year, stopDT.Month, stopDT.Day, 0, 0, 0);
                }
                //Console.WriteLine("stopDT = " + stopDT.ToString("yyyy-MM-dd HH:mm:ss"));
            }

            int resFrom = updateParamInDB("DateTimeFrom", strtDT.ToString("yyyy-MM-dd HH:mm:ss"));
            int resTo   = updateParamInDB("DateTimeTo", stopDT.ToString("yyyy-MM-dd HH:mm:ss"));

            return(stopDT);
        }
Ejemplo n.º 3
0
        public int ProcessPhotoBath(List <PhotoStruct> photoList,
                                    ref TimeSpan ts_Process, ref TimeSpan ts_Pauses)
        {
            //Console.WriteLine("ProcessPhotoBath()");
            Int32.TryParse(myParams.Value("UseMultyProc"), out int useMultyProc);
            Int32.TryParse(myParams.Value("IDsSaveStep"), out int idsSaveStep);
            Int32.TryParse(myParams.Value("OneFilePause_ms"), out int oneFilePause_ms);

            // сбросим счётчики распознавания
            cntPrep = 0;
            cntReco = 0;
            cntSave = 0;
            cntLock = 0;
            long lastId = 0;

            for (int i = 0; i < photoList.Count; i++)
            {
                var rec = photoList[i];
                lastId = rec.TargetInfoID;
                int resRec = 0;

                //Console.WriteLine("CreateDirectories()");
                CreateDirectories();

                CarDataStruct answer = new CarDataStruct();
                string        fname  = rec.TargetInfoID.ToString();

                //Console.WriteLine("RecognizeImageByteArr()");
                if (rec.bufLen > 1000)
                {
                    Stopwatch sw_reco = new Stopwatch();
                    sw_reco.Start();
                    resRec = CarModelSdk.RecognizeImageByteArr(out answer, rec.buf, rec.bufLen, rec.ImgFileName);
                    sw_reco.Stop();
                    ts_Process += sw_reco.Elapsed;
                }
                else
                {
                    continue;
                }

                //Console.WriteLine("MyTrim(answer.Name, 0, 250)");
                string resName = MyTrim(answer.Name, 0, 250);

                if (resRec > 0)
                {
                    cntReco++;

                    var resSaveToDB = SaveResultRec(rec, true, answer);

                    if (oneFilePause_ms > 0)
                    {
                        Stopwatch sw_pause = new Stopwatch();
                        sw_pause.Start();
                        Wait(oneFilePause_ms);
                        sw_pause.Stop();
                        ts_Pauses += sw_pause.Elapsed;
                    }
                }

                // запомним lastId
                int ii = i + 1;
                if (ii % idsSaveStep == 0 &&
                    ii > 0)
                {
                    long idFrom = lastId + 1;
                    updateParamInDB(_myName + "_ID_From", idFrom.ToString());
                    //saveParamToDB(_myName + "_ID_From", idFrom.ToString());
                }
            }

            cntPrep = photoList.Count;

            // запомним lastId
            long idFromRes = lastId + 1;

            updateParamInDB(_myName + "_ID_From", idFromRes.ToString());
            //saveParamToDB(_myName + "_ID_From", idFromRes.ToString());

            return(cntReco);
        }