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 "); } } }
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); }
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); }