1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| Private Sub AnalyzePiece()
Try
If Not Me.Analyzing Then
Me.Analyzing = True
'Si l'analyse est terminée pour la piece..
If Me.Analyse_Completed AndAlso Not Me.Cycle_Completed Then
'On recupère la 1ere caméra qui a renvoyé une analyse négative
Dim camOutput As Camera = (From r In Me.Results Where Not r.Value Select r.Key).FirstOrDefault
'Si on a un nom..
Dim time As Integer = TimeEjectionOK
Dim outputname As String = "S11"
If camOutput IsNot Nothing Then
time = camOutput.TimeEjection
outputname = camOutput.OutputEjection
ElseIf Me.Analyse_Aborted Then
time = TimeEjectionOK
outputname = ""
End If
'Si c'est l'heure, on ejecte..
If Me.Time_Fibre + time <= GetTickCount Then
Me.Cycle_Completed = True
Ejection(Me, outputname)
End If
Else
'on récupère la caméra active que l'on vient de dépassée et qui n'a pas encore analysé
Dim camAnalyse As Camera = (
From c In Cameras
Where c.Activated _
AndAlso Not Me.Results.ContainsKey(c) _
AndAlso GetTickCount() >= Me.Time_Fibre + c.TimeTrigger _
Select c).FirstOrDefault
'Si on a une camera, on lance l'analyse..
If camAnalyse IsNot Nothing Then
'On ajoute le resultat aux resultats de la piece
If Not camAnalyse.Busy Then
Me.Results.Add(camAnalyse, False)
Me.Results(camAnalyse) = camAnalyse.Analyse
'log suivant le resultat
If Me.Results(camAnalyse) Then
SendMessage("Piece n°" + Me.Numero_Piece.ToString + " a passé " + camAnalyse.Name + " [OK].")
Else
SendMessage("Piece n°" + Me.Numero_Piece.ToString + " a passé " + camAnalyse.Name + " [NOK].")
End If
'Si analyse complete..
If camAnalyse Is (From c In Cameras Where c.Activated Select c).LastOrDefault Then
Me.Analyse_Completed = True
End If
ElseIf Not Me.Results.ContainsKey(camAnalyse) Then
SendMessage(camAnalyse.Name + " occupée. Mesures interrompues pour piece n°" + Me.Numero_Piece.ToString + ".")
Me.Analyse_Aborted = True
Me.Analyse_Completed = True
End If
End If
End If
Me.Analyzing = False
End If
Catch ex As Exception
'Erreur analyse piece courante
SendError("Analyse échouée pour piece n°" + Me.Numero_Piece.ToString + ".")
SendError("Message d'erreur: " + ex.Message)
End Try
End Sub |
Partager