à Hyperion.Application.Main() dans C:\Users\Hyperion\Desktop\Hyperion - New 5\Hyperion\obj\x86\Debug\Application.g.vb:ligne 76A voir...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionLa collection a été modifiée ; l'opération d'énumération peut ne pas s'exécuter.
'a refaire avec des for next '///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// '///////////////////////////Crée la liste des etat d'alarme avec l'automate/////////////////////////////////////////////// Private Sub TraitementAlarme() LectureEtatAlarmeFichier() LectureEtatAlarmeAutomate() Dim testListe As Boolean = False ' Dim listID As List(Of Int64) = New List(Of Int64) 'Liste des Id qui ont eu un changement d'etat Dim listID As New List(Of EtatAlarme) 'Liste des Id qui ont eu un changement d'etat Try ' A enlever pour test programme For Each elementF As EtatAlarme In ListEtatAlarmeFichier For Each elementA As EtatAlarme In ListEtatAlarmeAutomate If (elementF.id = elementA.id) Then If Not (elementF.etat = elementA.etat) Then ' listID.Add(elementA.id) 'charge la liste des Id qui on eu un changement d'etat listID.Add(elementA) 'charge la liste des Id qui on eu un changement d'etat End If End If Next Next Catch ex As Exception ' A enlever pour test programme FileError("WatchVariable / TraitementAlarme / For Each elementF") ' A enlever pour test programme End Try ' A enlever pour test programme Try For Each elementId As EtatAlarme In listID 'pour chaque Id qui a etait modifier ' For Each elementId As Int64 In listID 'pour chaque Id qui a etait modifier 'For Each elementA As EtatAlarme In ListEtatAlarmeAutomate 'If (elementId = elementA.id) Then If (elementId.etat = True) Then 'front montant sur l'etat du defaut Dim appa As LogAlarme = New LogAlarme 'faire apparition attention fichier logalarme appa.id = elementId.id appa.apparition = DateTime.Now LogAlarmes.WriteFileBinaryApparition("Alarme", appa) 'Ecriture dans le fichier de l'apparition du defaut End If If (elementId.etat = False) Then 'front descendant sur l'etat du defaut Dim dispa As LogAlarme = New LogAlarme dispa.id = elementId.id dispa.disparition = DateTime.Now LogAlarmes.WriteFileBinaryDisparition("Alarme", dispa) 'Ecriture dans le fichier binaire de la disparition du defaut End If ' End If Next ' Next Catch ex As Exception System.Console.Out.WriteLine(ex.Message) FileError("WatchVariable / TraitementAlarme / For Each elementID") ' A enlever pour test programme End Try End Sub
'a refaire avec des for next '///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// '///////////////////////////Crée la liste des etat d'alarme avec l'automate/////////////////////////////////////////////// Private Sub TraitementAlarme() LectureEtatAlarmeFichier() 'Lecture des alarmes dans un fichier binary (rempli un list utiliser si dessous disponible pour tout le classe LectureEtatAlarmeAutomate()'Lecture des alarmes dans l'automate (rempli un list utiliser si dessous disponible pour tout le classe 'je compare les lists entre mon fichier binaire et l'automate pour savoir qu'elle sont les defauts (alarmes) qui on changer d'etat Dim testListe As Boolean = False Dim listID As New List(Of EtatAlarme) 'Liste des Id qui ont eu un changement d'etat Try ' A enlever pour test programme Dim nbr1 As Int64 = ListEtatAlarmeFichier.Count - 1 For debut1 = 0 To nbr1 Step 1 If (Not ListEtatAlarmeFichier.Count - 1 = nbr1) Then Exit For End If Dim nbr2 As Int64 = ListEtatAlarmeAutomate.Count - 1 For debut2 = 0 To nbr2 Step 1 If (Not ListEtatAlarmeAutomate.Count - 1 = nbr2) Then Exit For End If If (Not ListEtatAlarmeFichier.Count - 1 = nbr1) Then Exit For End If Try Dim etat1 As New EtatAlarme Dim etat2 As New EtatAlarme etat1 = ListEtatAlarmeFichier.ElementAt(debut1) etat2 = ListEtatAlarmeAutomate.ElementAt(debut2) If (etat1.id = etat2.id) Then If Not (etat1.etat = etat2.etat) Then listID.Add(etat2) End If End If Catch ex As Exception Exit For End Try Next Next Catch ex As Exception ' A enlever pour test programme FileError("WatchVariable / TraitementAlarme / For Each elementF") ' A enlever pour test programme End Try ' A enlever pour test programme Try For Each elementId As EtatAlarme In listID 'pour chaque Id qui a etait modifier If (elementId.etat = True) Then 'front montant sur l'etat du defaut Dim appa As LogAlarme = New LogAlarme 'faire apparition attention fichier logalarme appa.id = elementId.id appa.apparition = DateTime.Now LogAlarmes.WriteFileBinaryApparition("Alarme", appa) 'Ecriture dans le fichier de l'apparition du defaut End If If (elementId.etat = False) Then 'front descendant sur l'etat du defaut Dim dispa As LogAlarme = New LogAlarme dispa.id = elementId.id dispa.disparition = DateTime.Now LogAlarmes.WriteFileBinaryDisparition("Alarme", dispa) 'Ecriture dans le fichier binaire de la disparition du defaut End If Next Catch ex As Exception System.Console.Out.WriteLine(ex.Message) FileError("WatchVariable / TraitementAlarme / For Each elementID") ' A enlever pour test programme End Try End Sub
Private Sub LectureAlarmeActif() ListeAlarmeActif = New WpfObservableCollection(Of LogAlarme) 'wpf ' ListeAlarmeActif = New ObservableCollection(Of LogAlarme) Dim alarmeactif As LogAlarme Dim theConfig As ConfigMgt = New ConfigMgt Try ' A enlever pour test programme ListeAlarmeActif.Clear() For Each element As EtatAlarme In ListEtatAlarmeAutomate If (element.etat = True) Then 'seulement si l'alarmes et active alarmeactif = New LogAlarme alarmeactif.id = element.id theConfig = ConfigMgt.GetInstance() 'Lance l'instance pour faire la lecture de l'XML For Each def As DefautAutomate In theConfig.Defauts If (element.id = def.Id) Then alarmeactif.defaut = def.Description 'Charge le nom du defaut End If Next ListeAlarmeActif.Add(alarmeactif) End If Next Catch ex As Exception ' A enlever pour test programme FileError("WatchVariable / LectureAlarmeActif / For Each element") ' A enlever pour test programme End Try ' A enlever pour test programme End Sub
<DefautAutomate> <Description>RoofTop1</Description> Roof1SyntheseAlarme 8 </DefautAutomate>