public void RegolazioniLivello(HImage image, CancellationToken token, out ArrayList iconicList, out ElaborateResult result) { iconicList = new ArrayList(); result = new ElaborateResult(); try { iconicList.Add(new Utilities.ObjectToDisplay(image)); if (this.parametri.AbilitaControllo) { double center = FindPositionBottle(image, this.parametri, false, ref iconicList); bool errorLevelMin, errorLevelMax, errorEmpty; result.Success = AnalisiLivello(image, this.parametri, center, true, out errorLevelMin, out errorLevelMax, out errorEmpty, ref iconicList); } else { result.Success = true; } } catch (Exception) { result.Success = false; } }
private void RaiseNewImageToDisplayEvent(ArrayList iconicVar, ElaborateResult result) { OnNewImageToDisplayDelegate del; lock (newImageEventLock) { del = OnNewImageToDisplay; } if (del != null) { del(iconicVar, result); } }
private void ManageErrorImage(ArrayList iconicVarList, ElaborateResult result) { if (result.Success == false && Properties.Settings.Default.NumeroErrori > 0) { lock (lastErrorsLock) { if (LastErrors.Count == Properties.Settings.Default.NumeroErrori) { LastErrors[Properties.Settings.Default.NumeroErrori - 1].Dispose(); LastErrors.RemoveAt(Properties.Settings.Default.NumeroErrori - 1); } Utilities.CacheErrorObject ceo = new Utilities.CacheErrorObject(iconicVarList, result); if (Properties.Settings.Default.ErroriSuDisco) { //WriteErrorImageToDisk(ceo); if (ceo != null && ceo.IconicVar != null && ceo.IconicVar.Count > 0 && ((Utilities.ObjectToDisplay)ceo.IconicVar[0]).IconicVar is HImage) { HImage img = (((Utilities.ObjectToDisplay)ceo.IconicVar[0]).IconicVar as HImage).CopyImage(); Action actionSave = () => { try { WriteErrorImageToDisk(img); } catch (Exception ex) { ExceptionManager.AddException(ex); } }; if (this.taskWriteErrorImageToDisk == null) { this.taskWriteErrorImageToDisk = Task.Run(actionSave); } else { this.taskWriteErrorImageToDisk = this.taskWriteErrorImageToDisk.ContinueWith(k => actionSave()); } } } LastErrors.Insert(0, ceo); } } }
private void RaiseNewImageToDisplayEvent(ArrayList iconicVar, ElaborateResult result) { //OnNewImageToDisplayDelegate del; //lock (newImageEventLock) //{ // del = OnNewImageToDisplay; //} //if (del != null) //{ // del(iconicVar, result); //} Action action = () => { try { OnNewImageToDisplayDelegate del; lock (newImageEventLock) { del = OnNewImageToDisplay; } if (del != null) { del(iconicVar, result); } } catch (Exception ex) { ExceptionManager.AddException(ex); } }; if (this.taskRaiseNewImageToDisplayEvent == null) { this.taskRaiseNewImageToDisplayEvent = Task.Run(action); } else { this.taskRaiseNewImageToDisplayEvent = this.taskRaiseNewImageToDisplayEvent.ContinueWith(k => action()); } }
public void WorkingControlloLivelloAlgorithm(HImage image, CancellationToken token, out ArrayList iconicList, out ElaborateResult result) { iconicList = new ArrayList(); result = new ElaborateResult(); try { iconicList.Add(new Utilities.ObjectToDisplay(image)); if (this.parametri == null) { iconicList.Add(new Utilities.ObjectToDisplay(linguaMngr.GetTranslation("MSG_NO_RECIPE"), "red", 0, 0)); result.Success = true; } else { if (this.parametri.AbilitaControllo) { double center = FindPositionBottle(image, this.parametri, false, ref iconicList); token.ThrowIfCancellationRequested(); bool errorLevelMin, errorLevelMax, errorEmpty; result.Success = AnalisiLivello(image, this.parametri, center, true, out errorLevelMin, out errorLevelMax, out errorEmpty, ref iconicList); result.DettaglioElaborazione.Add("KO_LEVEL_MIN", errorLevelMin); result.DettaglioElaborazione.Add("KO_LEVEL_MAX", errorLevelMax); result.DettaglioElaborazione.Add("KO_LEVEL_EMPTY", errorEmpty); token.ThrowIfCancellationRequested(); } else { iconicList.Add(new Utilities.ObjectToDisplay(linguaMngr.GetTranslation("MSG_TEST_DISABLED"), "red", 0, 0)); result.Success = true; } } } catch (Exception) { result.Success = false; } }
private void ElaborateImage(HImage hImage, CancellationTokenSource cts, out ArrayList iconicVar, out ElaborateResult oResult) { OnExecuteAlgorithmDelegate del; ArrayList retValue = new ArrayList(); ElaborateResult result = new ElaborateResult(); lock (OnExecuteAlgorithmLock) { del = OnExecuteAlgorithm; } if (del != null) { del(hImage, cts.Token, out retValue, out result); } iconicVar = retValue; oResult = result; }
public void RegolazioniCentraggio(HImage image, CancellationToken token, out ArrayList iconicList, out ElaborateResult result) { iconicList = new ArrayList(); result = new ElaborateResult(); try { iconicList.Add(new Utilities.ObjectToDisplay(image)); if (this.parametri.AbilitaControllo) { double center = FindPositionBottle(image, this.parametri, true, ref iconicList); result.Success = center != 0; } else { result.Success = true; } } catch (Exception) { result.Success = false; } }